Linux 配置MySQL的远程连接

1,051 阅读1分钟

安装、启动mariadb

yum install mariadb-server mariadb  # centos7 安装

systemctl start mariadb  #启动MariaDB
systemctl stop mariadb  #停止MariaDB
systemctl restart mariadb  #重启MariaDB
systemctl enable mariadb  #设置开机启动
mysql_secure_installation #进行MariaDB的相关简单配置

##首先是设置密码,会提示先输入密码
##Enter current password for root (enter for none):<–初次运行直接回车
##设置密码
##Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
##New password: <– 设置root用户的密码
##Re-enter new password: <– 再输入一次你设置的密码
##其他配置
##Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车
##Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,
##Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车
##Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
##初始化MariaDB完成,接下来测试登录

mysql -uroot -p

当远程连接时报错:

有两种解决方法: 

 1.授权法 

GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; // %:表示从任何主机连接到mysql服务器
FLUSH   PRIVILEGES;
或者
GRANT ALL PRIVILEGES ON *.* TO 'user'@'116.30.70.187' IDENTIFIED BY 'password' WITH GRANT OPTION;//表示从指定ip从任何主机连接到mysql服务器
FLUSH   PRIVILEGES; 

 2.改表法 (该方法会使本地localhost无法登录,建议新建一个用户开发权限)

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入MySQL后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

mysql -u root -p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root'  and host='localhost';
mysql>select host, user from user;

然后重启MySQL服务。 或再执行 执行一个语句 

mysql>FLUSH PRIVILEGES; 

使修改生效。