Ubuntu MySQL新增用户并开启远程连接

1、首先用root用户登录mysql

mysql -u root -p

输入密码后登录成功

2、新建用户

use mysql;
select host,user from user;   --查看现有用户
CREATE USER 'retail_u'@'localhost' IDENTIFIED BY 'retail_PWD_123';   --新建用户
select host,user from user;--再次查看用户

3、赋权限

GRANT ALL PRIVILEGES ON *.* TO 'retail_u'@'%' IDENTIFIED BY 'retail_PWD_123' WITH GRANT OPTION;
flush privileges;

retail_u表示用户名,%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,第二个retail_PWD_123表示密码

如果不想增加记录,只是想把某个已存在的用户(例如root)修改成允许远程主机访问,则可以使用如下SQL来完成:

update user set host='%' where user='root' and host='localhost';
flush privileges;

查询与修改user表

select user,authentication_string,host from user;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';

update user set authentication_string=password('123456') where user='root';

4、修改配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到 并注释 bind-address = 127.0.0.1

bind-address = 127.0.0.1 修改为(注释掉)
#bind-address = 127.0.0.1

5、重启mysql

service mysql restart

6、打开防火墙端口 3306

sudo ufw allow 3306

7、如果是用的阿里云,需要开启阿里云安全组端口策略
进入控制台,网络和安全->安全组->配置规则,将MySQL监听端口开放即可,如下:


安全组端口策略

我在用阿里云的时候,安全组端口策略设置了,但死活就是无法进行远程连接,最后我把地区从杭州换成深圳,再重新设置安全组端口策略就OK了


安全组端口策略-换地区

8、远程连接测试


workbench远程连接测试

9、解决多个用户的情况
按以上步骤操作完后,仍然无法进行远程连接

use mysql;
select host,user from user;
查看用户

发现竟然有两个root账号,因为mysql 的登陆用户是可以限制某个用户在某个IP才能登陆的,所以你看到一个用户有多条数据也是不奇怪,你可以将Host+user 来作为一个标准。

这两个root的密码可能是不一样的,比如host为localhost的root密码为123;host为%的root密码为abc;在本机用123可以登录,但远程登录时就需要用abc来登录。

你可能感兴趣的:(Ubuntu MySQL新增用户并开启远程连接)