五好的Book

mysql8 安装后root登录不了

今天又在一台ubuntu上安装mysql8,这次不一样, 默认不是用系统的root帐号登录的,上次写 mysql8 安装与更改datadir数据目录 时是使用系统的root帐号操作的, 其中进展很顺利,没有遇到mysql登录不上root的问题, 不过这次现实俨然打脸了我,mysql -uroot -p 使用了很多方法都登录不了。

在中文搜索里, 搜了一堆都没有用,用 /etc/mysql/debian.cnf 里自动创建的用户 登录进去后
Userplugin
rootauth_socket
mysql.sysmysql_native_password
debian-sys-maintmysql_native_password

会看到 root的 plugin 和 下面2个不一样, 验证方式不一样,对很多资料也都提到了这一项,然后就开始教大家怎么怎么登录进root。
不过今天我这里 并不打算这样做(修改plugin的auth_socket),我们来想一想mysql 为什么要这样做呢?
其实不能登录只是我们的使用方式不对,不信 你尝试下这样,看看能登录不

方式一  :
采用 ubuntu的 root 帐号登录系统  然后再用  mysql -uroot -p 
方式二:
采用 sudo mysql -uroot -p

你会发现 这2种方式 都能成功登进mysql的 root 帐号里去。
所以类似的如果需要让ubuntu的系统用户能直接登进 mysql 还可以这样做

mysql> USE mysql;
mysql> CREATE USER 'YOUR_SYSTEM_USER'@'localhost' IDENTIFIED BY 'YOUR_PASSWD';
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; 
sudo service mysql restart

所以 如果你不想用默认的 auth_socket 方法验证密码, 修改成 mysql_native_password 也是可以的。

mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

参考:资料

本原创文章未经允许不得转载 | 当前页面:五好的Book » mysql8 安装后root登录不了

评论