我遇到的问题是远程可以连接到数据库,而服务器命令的方式却始终进不去。如图:
1:关闭数据库
systemctl stop mysqld.service
2:进入mysql 配置文件
vi /etc/my.cnf
3:也是我遇到的坑,也是比较着急容易忽略的点 skip-grant-tables 不能写在[mysqld_safe]下面,不然
mysql -u root 进入后 show databases 只会有这个 information_schema 就是说权限没起到作用
应该写在 [mysqld] 下面
4:保存
:wq
5: 重启 mysql
systemctl restart mysqld.service
6: 进入mysql 查看是否有权限 显示所有的数据库了,
mysql -u root
show databases;
7: 这两行代码的作用能让 客户端可以连接到数据库,而服务器内部命令的方式却进不去的解决关键之处
GRANT ALL PRIVILEGES ON *.* TO '你的用户名'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
上面的两个命令就是说你输入的用户可以在任意的电脑上使用这个用户和密码来登录
服务器上的mysql数据库的。其中'%'表示任意的ip地址,也可以指定特定的ip地址。
然后就OK了 去测试下远程客户端连接 mysql 测试命令行方式连接 mysql 测试下重启mysql 。