在CentOS上搭建MySQL过程后,默认的root账户只能在本机访问的,如果想通过其他机器访问CentOS上的MySQL数据库,需要进行一番配置方可进行访问。解决方案如下。
第一步:使用root登录mysql,并选择mysql数据库,执行命令:
-- 登录mysql mysql -uroot -proot的密码;
-- 进入mysql数据库 use mysql;
第二步 : 如果仅仅授权 root@localhost ,那么远程访问则无法连接,这时需要授权:
-- 为对应账户赋予可以访问的权限,‘访问用户名’和‘访问密码’部分填写所需的
GRANT ALL PRIVILEGES ON *.* TO '访问用户名'@'%' IDENTIFIED BY '访问密码' WITH GRANT OPTION;
-- 写入权限
FLUSH PRIVILEGES;
第三步:重启数据库
/etc/init.d/mysqld restart
第四步:如果 CentOS启用防火墙时 没有打开3306端口,那么通过远程访问 MySQL 时也会无法连接上。要打开 3306 端口,请执行以下步骤:
vi /etc/sysconfig/iptables
在该文件中添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
然后重启防火墙,
service iptables restart
注意:不能去修改数据库表的内容,而是用GRANT命令去添加一条记录,否则可以虽然改为可以进行远程连接但是不能用localhost进行连接了。此时如果数据库所在的服务器有项目用localhost连接的话就连接不上。