Skip to content

Latest commit

 

History

History
148 lines (111 loc) · 7.2 KB

3.1.md

File metadata and controls

148 lines (111 loc) · 7.2 KB

连接数据库

登录MySQL数据库有多种方式,GUI登录最方便,有特别多的App可以提供图形化工具登录MySQL,并且方便的查看数据信息,这里推荐一些APP,你可以尝试下载,有些APP还提供命令执行功能。图形化界面就不一样讲解了,就介绍一下命令行下面登录MySQL数据库,这样你可以配合App来学习SQL语言,更快掌握这门语言。

MySQL命令语法

用户名是你登录的用户,主机名或者IP地址为可选项,如果是本地连接则不需要,远程连接需要填写,密码是对应用户的密码。

mysql –u用户名 [–h主机名或者IP地址,-P端口号] –p密码
  1. 该命令是在命令行窗口下执行,而不是MySQL的命令行;
  2. 输入-p后可以直接跟上密码,也可以按回车,会提示你输入密码,二者都是相同的效果;
  3. –p密码选项不一定是要在最后;
  4. –u、-h、-p后无空格。

MySQL命令连接数据库

首先将这个使用率高达80%以上的“mysql”命令工具简单的做一个讲解,在操作系统命令终端提示符下输入 mysql -h 127.0.0.1 -u用户名 -p密码,将出现一个如下的简单提示:

→ mysql -h127.0.0.1 -P3306 -uroot -prootpassword

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 99
Server version: 5.7.14 MySQL Community Server (GPL)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>
  • -h127.0.0.1 其中“-p”是参数,“rootpassword”,默认本地参数可忽略
  • -P3306 其中“-P”是参数(注意大写),“3306”,默认本地参数可忽略
  • -uroot 其中“-u”是参数,“root” 是用户名。
  • -prootpassword 其中“-p”是参数,“rootpassword” 是用户名。
  • Commands end with ; or \g. 命令的结束符,用“;”或者“\g”符号结束,但是冒号结束退出是不行的。
  • Your MySQL connection id is 99 其中 id 表示客户端的连接 ID,该数据记录了 MySQL 服务到目前为止的连接次数,每次新连接都会自动加 1。由于数据库服务是我安装了好久的,所以当前 ID 值为 99。
  • Server version: 5.7.14 MySQL MySQL的版本。
  • Community Server (GPL) 表示 MySQL 软件是社区版。
  • Type 'help;' or '\h' for help. 表示输入 “help;” 或者 “\h” 命令可以查看帮助信息。
  • Type '\c' to clear the current input statement. 表示输入“\c” 命令可以清除前面的命令。

你只需要在mysql>命令中输入 SQL 语句,同时并以分号“;”结束。最后摁Enter键即可操作 MySQL软件。

当然,具体的版本和连接信息可能不同,但都可以使用这个实用程序。请注意:

  • 命令输入在mysql> 之后;
  • q\quitexit三种命令可以退出命令行实用程序;
  • 帮助命令,输入help\h获得帮助,可以获得其它特定的命令的帮助(如,输入help select获得使用SELECT语句的帮助);

开启MySQL的远程帐号

用GUI连接数据库如果报下面错误,是你的 MySQL远程连接账号没有开启。

Unable to connect to host 192.168.188.114, or the request timed out.
Be sure that the address is correct and that you have the necessary privileges, or try increasing the connection timeout (currently 10 seconds).
MySQL said: Host '192.168.188.106' is not allowed to connect to this MariaDB server

通过下面的命令,解决不能连接的错误,进入 MySQL 执行下面语句。

# 你想root使用123456从'192.168.188.106'主机连接到mysql服务器 wabg库下面所有表的话。
MySQL> grant all PRIVILEGES on wabg.* to  root@'192.168.188.106'  identified by '123456' WITH GRANT OPTION;
# 你想myuser使用mypassword从任何主机连接到mysql服务器的话
MySQL> grant all PRIVILEGES on *.* to  'myuser'@'%'  identified by 'mypassword' WITH GRANT OPTION;

上面的语句表示将 wabg 数据库的所有权限授权给 root 这个用户,允许 root 用户在 192.168.1.106 这个 IP 进行远程登陆,并设置 root 用户的密码为 123456 。

  • all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限
  • wabg.* 表示上面的权限是针对于哪个表的,wabg指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:
    • 对于全部数据库的全部表授权为“ .
    • 对于某一数据库的全部表授权为“ 数据库名.* ”
    • 对于某一数据库的某一表授权为“数据库名.表名”
  • root 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。
  • 192.168.188.106 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。
  • 123456 为用户的密码。

如何开启MySQL的远程帐号?执行了上面的语句后,再执行下面的语句,方可立即生效。

MySQL> flush privileges;

当你报下面错误,提示您的密码不满足当前的策略要求。错误如下:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
# 或者
mysqladmin: unable to change password; error: 'Your password does not satisfy the current policy requirements'

解决方法:可以按照现有策略设置密码,也可以更改密码策略。

# 更改密码策略为LOW
MySQL> set global validate_password_policy=0;
# 更改密码长度 密码最小长度为4
MySQL> set global validate_password_length=4;  

进入 MySQL 查看你的密码验证策略

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   | 
| validate_password_dictionary_file    |       | 
| validate_password_length             | 4     | 
| validate_password_mixed_case_count   | 1     | 
| validate_password_number_count       | 1     | 
| validate_password_policy             | LOW   | 
| validate_password_special_char_count | 1     | 
+--------------------------------------+-------+
7 rows in set (0.00 sec)
  • validate_password_check_user_name 不得使用当前会话用户名作为密码的一部分
  • validate_password_dictionary_file 验证密码强度的字典文件路径
  • validate_password_length 密码最小长度
  • validate_password_mixed_case_count 密码至少要包含的小写字母个数和大写字母个数
  • validate_password_number_count 密码至少要包含的数字个数
  • validate_password_policy 密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG
    • 0/LOW:只检查长度。
    • 1/MEDIUM:检查长度、数字、大小写、特殊字符。
    • 2/STRONG:检查长度、数字、大小写、特殊字符字典文件。
  • validate_password_special_char_count 密码至少要包含的特殊字符数

MySQL修改密码

mysqladmin -uroot -p password