sHa*_*NeR 4 mysql authentication mysql-8.0
我通常会正确设置MySQL以进行远程访问。
目前,我陷入了MySQL 8的困境。
第一件事是在mysql.conf.d / mysqld.cnf上,我没有任何绑定地址行,因此我手动添加了它(绑定地址0.0.0.0),并授予了对用户的访问权限'%'
当我连接时,我收到消息“身份验证失败”
但它在localhost /命令行上运行良好
小智 14
遇到同样的问题,连接到 MySQL Workbench 并更新了用户权限。
MySQL 版本:8.0.20 社区。操作系统:Windows 10。
怎么做:
bind_address从my.ini文件中删除或注释该参数。(文件名称因操作系统而异。在Linux上,my.ini实际上是位于目录/ etc / mysql /中的my.cnf)
创建root用户(是的,是新用户,因为存在的是“ root @ localhost”,仅本地访问):
CREATE USER 'root'@'%' IDENTIFIED BY '123';
赋予特权:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
对于DBA用户,请
WITH GRANT OPTION在最后添加。
因为它不能用GRANT创建?
MySQL 8无法再使用创建用户GRANT,因此,IDENTIFIED BY '123'如果尝试将其与结合使用会GRANT出现错误,这是最常见的错误。
MySQL 8 中的远程访问:
1) 允许来自任何主机的访问
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
2)允许用户从任何地方访问:
mysql
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
UPDATE mysql.user SET host='%' WHERE user='root';
Run Code Online (Sandbox Code Playgroud)
3) 将身份验证更改为密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'ThePassword';
Run Code Online (Sandbox Code Playgroud)
小智 3
对于 MySQL 8,打开 mysqld.cnf 文件
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Run Code Online (Sandbox Code Playgroud)
并修改或添加bind-address选项:
[mysqld]
bind-address = 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
重启mysql服务器
sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12338 次 |
| 最近记录: |