学习是一个逐步发现自己无知的过程!

Mysql远程连接

创建mysql用户

Mysql创建用户的语句

mysql> CREATE USER user_account IDENTIFIED BY password;

用户帐号user_account就是以username@hostname格式跟在CREATE USER子句之后。

密码passwordIDENTIFIED BY子句中指定。password必须是明文。 在将用户帐户保存到用户表之前,MySQL将加密明文密码。

创建用户示例

例如:创建一个名为test的用户只允许在localhost登陆、密码为p12345

mysql> CREATE USER test@localhost IDENTIFIED BY 'p13245';

如果用户test还可以从IP为10.211.55.10的主机连接到MySQL数据库服务器,使用CREATE USER语句,如下所示:

mysql> CREATE USER test@10.211.55.10 IDENTIFIED BY 'p123456';

要查看用户帐户的权限,请使用SHOW GRANTS语句,如下所示:

mysql> SHOW GRANTS FOR test@localhost;

执行查询语句的结果

mysql> SHOW GRANTS FOR test@localhost;
+------------------------------------------+
| Grants for test@localhost                |
+------------------------------------------+
| GRANT USAGE ON *.* TO `test`@`localhost` |
+------------------------------------------+
1 row in set (0.00 sec)

如何连接数据库以及区别

mysql -h [ServerIP] -P [Port(Default 3306)] -u [User] -p [Password]

-h: mysql服务器的IP地址
-P: 大写的P选项表示端口号,端口号默认为3306,可省略
-u: 用户名
-p: 小写的p表示密码,当-p后输入密码时,会直接登陆。当-p后不输入密码时,会要求输入密码,但密码不显示

连接方式

mysql -h 10.211.55.10 -P 3306 -u root -pAbc1234  //显示密码登陆

mysql -h 10.211.55.10 -P 3306 -u root -p    //隐藏密码登陆
Enter password:

配置Mysql远程连接

默认情况下、mysql用户只能在本机登陆

方法一、修改数据表

登入数据库后、更改 mysql.user 数据表中的 hostlocalhost改为%

随后刷新权限即可连接。

mysql> use mysql;

mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
mysql> flush privileges;

方法二、授权数据库用户

  1. 允许某个用户在任何主机可以访问mysql服务器
    # 示例说明:
    GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%'IDENTIFIED BY '密码' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    %表示任何主机
    # 使用场景、允许test用户使用密码(123456)在所有主机连接到服务器
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'test'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
    mysql>FLUSH PRIVILEGES;
  2. 只允许指定用户在指定服务器上登陆
    # 示例说明
    GRANT ALL PRIVILEGES ON *.* TO '用户名'@'指定主机的IP地址'IDENTIFIED BY '密码' WITH GRANT OPTION;
    # 使用场景、允许test用户使用密码(123456)在IP为10.211.55.10的主机上连接到服务器
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'test'@'10.211.55.10'IDENTIFIED BY '123456' WITH GRANT OPTION;
    mysql>FLUSH PRIVILEGES;

常见问题

1、在采用法二授权法之后,无法在本地使用本地IP地址登录mysql(如:

mysql -u root -p -h 10.211.66.10
Enter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

上例中localhost是主机名.

解决方法: 这时可以使用:mysql -u root -p 登录

mysql> grant all privileges on *.* to 'root'@'localhost' identified by '123456' with grant option; 
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec)
赞(0)
未经允许不得转载:劉大帥 » Mysql远程连接

你的评论可能会一针见血! 1

  1. #1

    # 这只是一个创建远程登录并授权的语句、仅作为记录
    GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘Fit2cloud!’ WITH GRANT OPTION;

    somnus1年前 (2023-08-10)回复

登录

找回密码

注册