-
安装mysql
sudo apt install mysql-server一般情况都会成功,默认安装的是5.x版本,如果安装8.x版本需要以下几步
cd /tmpcurl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.13-1_all.debsudo dpkg -i mysql-apt-config_0.8.10-1_all.deb- 第一个选项回车
- 键盘按上下,选择你需要的版本,回车
- 键盘按下,OK回车退出
sudo apt updatesudo apt install mysql-server
-
修改配置
此时使用
sudo service mysql start发现失败,看日志/var/log/mysql/error.log有报错需要修改配置文件
-
sudo vim /etc/mysql/conf.d/mysql.cnf增加以下配置[mysqld] innodb_use_native_aio = 0 -
sudo vim /etc/mysql/mysql.conf.d/mysqld_safe_syslog.cnf注释掉以下配置[mysqld_safe] # syslog
-
-
执行
sudo mysql_secure_installation按提示操作 -
启动
sudo service mysql start -
执行
mysql -uroot -p,输入密码后报错
Some systems like Ubuntu, mysql is using by default the UNIX auth_socket plugin. Basically means that: db_users using it, will be "auth" by the system user credentias. You can see if your root user is set up like this by doing the following:
解决方案先使用 sudo mysql -uroot 进入mysql中
可以看到 root 使用的是 auth_socket
$ sudo mysql -u root # I had to use "sudo" since is new installation
mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| User | Host | plugin |
+------------------+-----------+-----------------------+
| debian-sys-maint | localhost | mysql_native_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | mysql_native_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | auth_socket |
+------------------+-----------+-----------------------+
两个解决方案 stackoverflow
- root使用
mysql_native_passwordplugin
$ sudo mysql -u root # I had to use "sudo" since is new installation
mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;
$ service mysql restart
- 新建一个用户
$ sudo mysql -u root # I had to use "sudo" since is new installation
mysql> USE mysql;
mysql> CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY '';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'YOUR_SYSTEM_USER'@'localhost';
mysql> UPDATE user SET plugin='auth_socket' WHERE User='YOUR_SYSTEM_USER';
mysql> FLUSH PRIVILEGES;
mysql> exit;
$ service mysql restart