CentOS 7使用 yum 安装 MariaDB(MySql)
一、安装MariaDB
1、安装命令
yum -y install mariadb mariadb-server2、安装完成MariaDB,首先启动MariaDB
systemctl start mariadb3、设置开机启动
systemctl enable mariadb二、配置MariaDB
1、接下来进行MariaDB的相关简单配置
mysql_secure_installation
2、首先是设置密码,会提示先输入密码
Enter current password for root (enter for none):<–初次运行直接回车3、设置密码
Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
4、其他配置
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] <– 是否重新加载权限表,回车
5、初始化MariaDB完成,接下来测试登录
mysql -uroot -ppassword完成。
三、设置允许其他主机远程链接数据库
MariaDB数据库安装好之后,默认是不允许其他主机远程链接的
1、接下来需要给对应的MySQL账户分配权限,允许使用该账户远程连接到MySQL
进入数据库的命令行界面,输入select User, host from mysql.user;
查看用户账号信息:
2、root账户中的host项是localhost表示该账号只能进行本地登录
我们需要修改权限,输入命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
修改权限。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
修改权限。
%表示针对所有IP,password表示将用这个密码登录root用户,如果想只让某个IP段的主机连接,可以修改为
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
注意:此时远程连接的密码可能与你在本地登录时的密码不同了,主要看你在IDENTIFIED BY后面给了什么密码
具体的请参考GRANT命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.100.%' IDENTIFIED BY 'my-new-password' WITH GRANT OPTION;
注意:此时远程连接的密码可能与你在本地登录时的密码不同了,主要看你在IDENTIFIED BY后面给了什么密码
具体的请参考GRANT命令
3、最后输入
FLUSH PRIVILEGES;保存更改。
再看看用户信息:
如果没有生效,可尝试是使用update的方式:
如果没有生效,可尝试是使用update的方式:
update user set host = '%' where user = 'root' and host = 'localhost';
这个时候发现相比之前修改了一项,它的host项是%,这个时候说明配置成功了,我们可以用该账号进行远程访问了
输入quit退出mysql
3、然后重启mysql服务
service mysql restart
4、远程工具进行连接
四、端口或者是服务问题导致链接失败
1、查看mysql监听IP和端口是否正常。
使用:netstat -anpt
监听得地址如果是:::3306或者是0.0.0.0:3306,表示监听所有IP地址,这监听状态是正常。若出现127.0.0.0:3306,说明监听的本地地址,需要在mysql配置文件中将bind-address选项设置为bind-address = 0.0.0.0,重启mysql。
2、如果还是远程还是不能访问的话,可以使用tcpdump在服务器端抓一下3306端口,看是否有数据包,排查以下网络原因。
在服务上输入抓包命令:tcpdump port 3306
然后远程连接mysql数据库,看一下服务端是否有数据包。
3、如果没有数据包并且使用的是阿里云服务器,可在安全组件中添加3306的规则配置
若安全组件中的配置中,入口未对数据库服务监听的3306端口放开,则需要将3306端口放开。如下图,并没有3306端口,则表示未放开该端口。
在阿里云服务器 ECS下的安全组件中的配置,放开3306端口。单击添加安全组规则,如下图:
最后重启mysql服务,远程链接工具尝试链接。