Ubuntu18.04安装MySQL

1.使用Ubuntu自带包管理器安装

sudo apt-get install mysql-server


2.新版本安装过程中没有提示设置root用户密码,根据安装日志和[官方文档]

sudo mysql -u root --skip-password


3.登录之后,设置root用户密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';


4.mysql5.7安装完成后普通用户不能进mysql,原因:root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password,直接用

root权限登录就不用密码,修改root密码和登录验证方式:

$ sudo su

# mysql

mysql>

mysql> select user, plugin from mysql.user;

+------------------+-----------------------+

| user            | plugin               |

+------------------+-----------------------+

| root            | auth_socket          |

| mysql.session   | mysql_native_password |

| mysql.sys       | mysql_native_password |

| debian-sys-maint | mysql_native_password |

+------------------+-----------------------+

4 rows in set (0.00 sec)

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

mysql> flush privileges;

mysql> exit

Bye

# exit

$ sudo /etc/init.d/mysql restart

$ mysql -uroot -p


5.配置mysql远程登录

# 修改配置文件,注释掉bind-address = 127.0.0.1

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

# 保存退出,然后进入mysql服务,执行授权命令:

$ mysql -uroot -p

mysql> grant all on *.* to root@'%' identified by '123456' with grant option;

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

$ sudo /etc/init.d/mysql restart