1.MySql-Server 出于安全方面考虑只允许本机(localhost, 127.0.0.1)来连接访问. 这对于 Web-Server 与 MySql-Server 都在同一台服务器上的网站架构来说是没有问题的. 但随着网站流量的增加, 后期服务器架构可能会将 Web-Server 与 MySql-Server 分别放在独立的服务器上, 以便得到更大性能的提升, 此时 MySql-Server 就要修改成允许 Web-Server 进行远程连接.
2.不用每次都登到服务器去添加修改表,只要用图形化界面即可远程管理。
我们可以按照下面的步骤修改:
1, 登录 Mysql-Server 连接本地 mysql (默认只允许本地连接)
2, 修改 Mysql-Server 用户配置
一、5.7之前的版本
mysql> USE mysql; -- 切换到 mysql DB
Database changed
mysql> SELECT User, Password, Host FROM user; -- 查看现有用户,密码及允许连接的主机
+------+----------+-----------+
| User | Password | Host |
+------+----------+-----------+
| root | | localhost |
+------+----------+-----------+
1 row in set (0.00 sec)
mysql> -- 只有一个默认的 root 用户, 密码为空, 只允许 localhost 连接
12
mysql> -- 下面我们另外添加一个新的 root 用户, 密码为空, 只允许 192.168.1.100 连接
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' IDENTIFIED BY '' WITH GRANT OPTION;
mysql> -- @'192.168.1.100'可以替换为@‘%’就可任意ip访问,当然我们也可以直接用 UPDATE 更新 root 用户 Host, 但不推荐, SQL如下:
mysql> -- UPDATE user SET Host='192.168.1.100' WHERE User='root' AND Host='localhost' LIMIT 1;
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
复制代码
修改root密码
mysql> use mysql
Database changed
mysql> update user set password=PASSWORD('123456') where user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
注意:
还有查看my.ini或my.cnf配置文件中是否只开了127.0.0.1这个主机地址
bind-address = 127.0.0.1若是则删之。
二、5.7版本
mysql版本 5.7.22
安装完成后出现问题
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
可能是因为初始密码为空;按空格回车后还是报一样的错
那只能使用mysql -udebian-sys-maint -p进入MySQL,这时你需要mysql提供给你的密码
输入 sudo vim /etc/mysql/debian.cnf
password就是密码
进入后重新设置root账号密码UPDATE user SET authentication_string=PASSWORD('你的密码') where USER='root';
退出重启服务后还是报错!但是密码还是改成功了,查看select user,plugin from user
错误原因是因为 plugin root 的字段是auth_socket 改掉就行
update user set authentication_string =password('你的密码'),plugin='msyql_native_password' where user='root'
niec 现在exit 退出
可以了
转自:https://www.cnblogs.com/itboys/p/6063502.html