一.安装mysql数据库(mysql和mardb是同一个类型)
命令一:yum install mysql 安装mysql
命令二:yum install mariadb-server 安装mardb
命令三:yum remove mariadb-server 卸载mardb
报错:
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
解决:百度一下原因 这是因为yum采用python作为命令解释器,这可从/usr/bin/yum文件中第一行发现。而python版本之间兼容性不太好,使得2.X版本与3.0版本之间存在语法不一致问题。而CentOS 5自带的yum采用的是python2.6,当系统将python升级到3.0后,出现语法解释错误,最主要是之前我升级了python。
修改yum的解释器为旧版本python2.6
# vi /usr/bin/yum
#!/usr/bin/python2.7
修改urlgrabber-ext-down文件,更改python版本
# vi /usr/libexec/urlgrabber-ext-down
#!/usr/bin/python2.7
还有一种解决方法说是升级yum,没有试过,简友们可以尝试一下。
二.安装mariadb-server服务器,启动服务
yum install mariadb-server
systemctl start mariadb
三.输入指令更新密码和用户、数据库、数据表
/usr/bin/mysql_secure_installation
注:在这个更新数据库和数据表的过程中,有一步是提示是否允许服务从远程登录,应该允许,此处应该允许服务从远程登录,不然无法使用Navicat远程链接数据库
出现1103问题的原因是因为linux中的服务不允许从远程登录,只能在localhost。这个时候只要在localhost的那台服务器上,登入mysql后,更改"mysql"数据库里的"user"表中的"host"项,从"localhost"改为"%"。
image.png
解决思路:
1.进入到mysql服务
mysql -u root -p
2.切换到mysql表:
use mysql ;
3.赋予任何主机访问数据库的权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
# 赋予指定主机访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'12.0.0.1' WITH GRANT OPTION BY "****(密码)";
4.修改生效:
FLUSH PRIVILEGES;
5.退出mysql服务:
exit;
6.重启mysql(mariadb)服务:
systemctl restart mariadb
7.使用Navicat链接服务,成功
其他操作总结:
一.更改mysql默认端口
1.修改端口号、开放端口
vi /etc/my.cnf
添加port=3308
2.重新启动mysql服务使配置生效:
# systemctl restart mysql(mariadb)
3.设置远程端口(开启mysql对外端口)
# firewall-cmd --zone=public --add-port=3308/tcp --permanent
4.使用命令加载防火墙设置
# firewall-cmd --reload
总结:在进行到第3步时出现防火墙没有启动成功,然后我查看防火墙状态,发现错误,可能是因为防火墙依赖于python2的环境,而我的服务器环境将python的指向python3,所以导致无法启动防火墙进程。
systemctl status firewalld # 查看防火墙状态
systemctl start firewalld # 启动防火墙
报错信息:
image.png
解决:然后我就去网上百度,结果还真让我给发现问题
1.查看第一个文件python的指向是否正确
vim /usr/bin/firewall-cmd
2.查看第二个文件的python指向
vim /usr/bin/firewall-cmd
3.将两个文件的python指向都指向python2.7,然后启动防火墙服务,正常
image.png
后面设置远程端口也都正常。OK,搞定!!!
网友评论