之前通过命令在 Linux 上安装 mysql 的时候,每次安装成功过后,即使使用 root 权限免密登录 mysql,将 mysql 的密码修改成自己的密码后,还是不能通过普通用户验证 mysql 账户密码的方式登录 mysql。在经过一些尝试之后终于成功的以普通用户以及可以远程访问数据库。
不能用密码登录的主要原因:root 的 plugin 被修改成了 auth_socket,用密码登陆的 plugin 应该是 mysql_native_password
1.配置 mysql 的普通用户登录
以 ubuntu 为例,首先通过命令行安装 mysql 服务
sudo apt install mysql-server
安装完成后,更改 mysql root 账户认证模式
#更改mysql root的密码以及登录方式
update mysql.user
set authentication_string=PASSWORD('新密码'),plugin='mysql_native_password'
where user='root';
#刷新
flush privileges;
#退出mysql
exit
重启 mysql
sudo service mysql restart
普通方式登录
mysql -uroot -p
然后通过输入密码你就可以进入 mysql 了。
2.配置 mysql 的远程访问
首先登录进 mysql,然后执行修改权限命令
#修改权限
grant all on *.* to root@'%' identified by '密码' with grant option;
#刷新
flush privileges;
#退出mysql
exit
最后修改侦听地址 127.0.0.1 为 0.0.0.0
#修改侦听地址127.0.0.1为0.0.0.0
#打开mysql的配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
然后将 bind-address = 127.0.0.1 修改为 bind-address = 0.0.0.0
然后再次重启 mysql 服务
sudo service mysql restart
就可以根据提供的 mysql 的 ip,账户密码远程登录 mysql 了。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于