Ubuntu18.04安装mysql(AWS云)

1.执行如下三条命令

sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev

2.测试是否成功

sudo netstat -tap | grep mysql

3.远程访问设置

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

4.注释掉bind-address = 127.0.0.1

5.进入  mysql  服务

sudo mysql 

6.执行授权命令

grant all on *.* to root@'%' identified by '这里的文字换成你想要的密码' with grant option;
flush privileges;

7.设置mysql编码

set character_set_server=utf8;

set character_set_database=utf8;

8.退出mysql服务

quit

9. 更改AWS的安全组,添加一条规则,端口号选择  3306


关于 第五步的说明:

在很多文章中都提到使用  mysql -u root -p  进入MySQL服务,但是在使用时会提示输入密码,但是此时并不知道密码,但是可以使用  sudo cat /etc/mysql/debian.cnf  命令查看密码(password)和用户名(user)。然后就可以使用   mysql -u 用户名 -p  ,然后输入密码(password)进入服务。

但是这样做依然会出现错误: ERROR 1698 (28000): Access denied for user 'root'@'localhost'   。

原因剖析

查看 user 表

sudo mysql
mysql> select user, plugin from mysql.user;

返回结果:

mysql> select user, plugin from mysql.user;
+-----------+-----------------------+
| user | plugin |
+-----------+-----------------------+
| root | auth_socket |
| mysql.sys | mysql_native_password |
| dev | mysql_native_password |
+-----------+-----------------------+
rows in set (0.01 sec)

会发现 root 的plugin是 auth_socket,但是用密码登陆时的 plugin 应该是 mysql_native_password

解决方法:使用 sudo mysql  进入MySQL服务,执行命令:

update mysql.user set authentication_string=PASSWORD('newPwd'), plugin='mysql_native_password' where user='root';

flush privileges;

sudo service mysql stop
sudo service mysql start

现在就可以使用   mysql -u root -p  进入MySQL服务了。


参考文章:

1. 在Ubuntu16.04下安装mysql

2. AWS Linux下MySQL数据库的安装与配置

3. 问题ubuntu 和 deepin中 mysql,5.7:ERROR 1698 (28000): Access denied for user 'root'@'localhost'原因与解决

4. MySQL ERROR 1698 (28000) 错误

5. deepin/ubantu下 mysql 1698错误解决

6. https://dev.mysql.com/doc/refman/8.0/en/socket-pluggable-authentication.html

上一篇:UIButton、UIImageView、UILabel的选择


下一篇:Android Stuido 常用快捷键