前提是你的linux系统中没有安装mariadb
以下均为在root环境下操作
yum install mariadb-server
安装完成之后我们并不能使用mysql命令来启动数据, 原因是我们的数据库服务还有有开启
执行下面的开启命令即可 systemctl start mariadb
其他命令
systemctl start mariadb
systemctl restart mariadb
systemctl stop mariadb
还有另一种方式
service start mariadb
service restart mariadb
service stop mariadb
上面开启服务后, 默认情况下可能没有密码, 这时候我们需要初始化数据库
终端输入: 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即可
输入: 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退出数据库
如果经过上述的步骤, 你仍无法远程连接导数据, 那么可能是防火墙并没有开方3306端口
永久关闭防火墙systemctl disable firewalld.service
或者这样: systemctl stop firewalld.service
如果需要永久开启防火墙, 请输入以下指令
永久开启systemctl enable firewalld.service
或者:systemctl start firewalld.service
然后我们可以检查防火墙状态: firewall-cmd --state
如果完全的关闭防火墙, 会使我们的计算机不安全,
所以我们不需要把墙完全推到, 只需要挖一个洞即可(即需要什么端口就开放什么端口)
命令如下:开放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 #永久生效,没有此参数重启后失效
到现如果上面没有出现意外, 就大功告成了
原文:https://www.cnblogs.com/zpKang/p/13462372.html