centos安装mariadb
前提是你的linux系统中没有安装mariadb
以下均为在root环境下操作
1. 安装mariadb
yum install mariadb-server
安装完成之后我们并不能使用mysql命令来启动数据, 原因是我们的数据库服务还有有开启
2. 开启服务
执行下面的开启命令即可 systemctl start mariadb
其他命令
- 启动数据库
systemctl start mariadb
- 重启数据库
systemctl restart mariadb
- 关闭数据库
systemctl stop mariadb
还有另一种方式
- 启动数据库
service start mariadb
- 重启数据库
service restart mariadb
- 关闭数据库
service stop mariadb
3. 初始化数据库
上面开启服务后, 默认情况下可能没有密码, 这时候我们需要初始化数据库
注意: 此命令最好执行一次, 如果执行多次选择不当, 可能会无法进入数据库, 修改密码请在数据库内修改, 切勿执行此指令
终端输入: mysql_secure_installation
首先是设置密码,会提示先输入密码
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
一般设置完密码之后, 后面一路选Y即可
4. 设置远程登录权限
输入: mysql -uroot -p密码
进入数据库
选择mysql数据库: use mysql
查询权限: select host,user from user where user=‘root’;
发现root账户只能在本地访问, 如果需要任意ip访问, 我们需要设置host为%
执行: update user set host='%' where host="localhost";
再次查询: select host,user from user where user='root';
如果localhost变为%说明就成功了
好的, 进行最后一步, 刷新权限: flush privileges;
然后使用exit
或quit
或ctrl+c退出数据库
5. 配置linux防火墙
如果经过上述的步骤, 你仍无法远程连接导数据, 那么可能是防火墙并没有开方3306端口
5.1 解决方法1: 关闭防火墙
永久关闭防火墙systemctl disable firewalld.service
或者这样: systemctl stop firewalld.service
如果需要永久开启防火墙, 请输入以下指令
永久开启systemctl enable firewalld.service
或者:systemctl start firewalld.service
然后我们可以检查防火墙状态: firewall-cmd --state
5.2 解决方法2: 开放端口
如果完全的关闭防火墙, 会使我们的计算机不安全,
所以我们不需要把墙完全推到, 只需要挖一个洞即可(即需要什么端口就开放什么端口)
命令如下:开放3306端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent
命令解析:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
6 开机自启动
systemctl enable mariadb # 设置为开机自启动服务
到现如果上面没有出现意外, 就大功告成了