今天又在一台ubuntu上安装mysql8,这次不一样, 默认不是用系统的root帐号登录的,上次写 mysql8 安装与更改datadir数据目录 时是使用系统的root帐号操作的, 其中进展很顺利,没有遇到mysql登录不上root的问题, 不过这次现实俨然打脸了我,mysql -uroot -p 使用了很多方法都登录不了。
在中文搜索里, 搜了一堆都没有用,用 /etc/mysql/debian.cnf 里自动创建的用户 登录进去后 | |
---|---|
User | plugin |
root | auth_socket |
mysql.sys | mysql_native_password |
debian-sys-maint | mysql_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;
参考:资料
评论 (0)