部署mysql后,无法设置用户远程登陆(%只所有用户,不可以,只能给指定的ip?)
2024-08-28 11:19:50
MySQL允许远程访问的设置
1.注释bind-address = 127.0.0.1。
代码如下:
>sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
将bind-address = 127.0.0.1注释掉(即在行首加#),如下:
代码如下:
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1
# localhost which is more compatible and is not less secure.
# bind-address = 127.0.0.1
除了注视掉这句话之外,还可以把后面的IP地址修改成允许连接的IP地址。但是,如果只是开发用的数据库,为了方便起见,还是推荐直接注释掉。
从上面的注释中,可以看出,旧版本的MySQL(从一些资料上显示是5.0及其以前的版本)上使用的是skip-networking。所以,善意提醒一下,使用旧版本的小伙伴请注意一下。
2.删除匿名用户
登录进数据库:
代码如下:
>mysql -uroot -p123456
然后,切换到数据库mysql。SQL如下:
代码如下:
use mysql;
然后,删除匿名用户。SQL如下:
代码如下:
delete from user where user='';
3.增加允许远程访问的用户或者允许现有用户的远程访问。
接着上面,删除匿名用户后,给root授予在任意主机(%)访问任意数据库的所有权限。SQL语句如下:
代码如下:
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
如果需要指定访问主机,可以把%替换为主机的IP或者主机名。另外,这种方法会在数据库mysql的表user中,增加一条记录。如果不想增加记录,只是想把某个已存在的用户(例如root)修改成允许远程主机访问,则可以使用如下SQL来完成:
代码如下:
update user set host='%' where user='root' and host='localhost';
4.退出数据库
代码如下:
mysql> exit
在MySQL Shell执行完SQL后,需要退出到Bash执行系统命令,需要执行exit。因为这个太常用也太简单。以下内容就提示“退出”,不再重复列出这个命令。
5.重启数据库
完成上述所有步骤后,需要重启一下数据库,才能让修改的配置生效。执行如下命令重启数据库:
代码如下:
>sudo service mysql restart
最新文章
- 分布式session的实现
- AngularJs2 学习之路-笔记1-Atscript Ts ES6包含关系
- tomcat8和7关于自定义tag的处理区别
- ADF_ManagedBean的概念和管理(概念)
- LightSpeed的批量更新和批量删除
- netty-socketio使用namespace
- VMware打卡虚拟机提示“此虚拟机可能已被复制或移动”
- Jetty学习(一)
- 《asp.net mvc3 高级编程》第四章 模型
- FREESWITCH SEESION
- 安装MySQL8.0 遇到的3个小错误
- 关于Three.js基本几何形状
- Units in Android
- D - Searching the String (AC自动机)
- jsp的服务器响应,out.println 与response.setIntHeader的报错解决方案,附:导入jar包的方法
- 安恒7月赛wp
- 【HAOI2010】软件安装
- CSS Flex布局属性整理
- Tuxedo安装、配置、以及演示样例程序 (学习网址)
- Codeforces VK Cup 2015 - Qualification Round 1 D. Closest Equals 离线线段树 求区间相同数的最小距离