卸载mysql
sudo rm /var/lib/mysql/ -R
sudo rm /etc/mysql/ -R
sudo apt-get autoremove mysql* --purge #如果报错就用下面
sudo apt-get remove mysql-server mysql-client mysql-common
sudo apt-get remove apparmor // 输入Y回车
重新安装MySQL
sudo apt-get install mysql-server mysql-common
安装成功后检车MySQL是否已启动,正常都会自动启动。出现如下信息证明已启动
sudo netstat -tap | grep mysql
tcp 0 0 localhost:mysql *:* LISTEN 8356/mysqld
没有启动则手动启动
sudo service mysql start
启动错误把存在的mysql进程都杀掉
ps -aux | grep mysql
登录遇到错误
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
使用sudo登录
sudo mysql -uroot -p
查看user表
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)
错误的起因就是在这里, root的plugin被修改成了auth_socket,用密码登陆的plugin应该是mysql_native_password
修改plugin
mysql> update mysql.user set authentication_string=PASSWORD('new password'), plugin='mysql_native_password' where user='root';
重启服务
sudo service mysql restar