配置MySQL数据库远程访问权限

时间:2022-09-18 22:18:45

在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连接的话就连接不上。