新装mariadb以及消除隐患和设置远程链接

昨晚,我是在linux安装的mariadb。期间遇到了N个问题,现把我遇到问题的各种解决方法发出来,供大家避坑。
首先,安装的时候,要同时安装客户端和服务端

yum -y install mariadb mariadb-server

新装mariadb以及消除隐患和设置远程链接_第1张图片
必须要安装两个,一个是客户端,一个是服务端。
然后我们等待即可
新装mariadb以及消除隐患和设置远程链接_第2张图片
安装完成,首先我们启动Mariadb

[root@VM-16-5-centos ~]# systemctl start mariadb

然后配置密码并消除隐患

[root@VM-16-5-centos ~]# mysql_secure_installation

新装mariadb以及消除隐患和设置远程链接_第3张图片
这个我们刚装好,没有密码,按回车就好
新装mariadb以及消除隐患和设置远程链接_第4张图片

这个为root用户设置密码,按y确认,设置成你自己的即可
新装mariadb以及消除隐患和设置远程链接_第5张图片
移除访客用户,为了安全起见,这个选y

新装mariadb以及消除隐患和设置远程链接_第6张图片
是否禁止root用户远程登陆?看自己的选择,我这里需要远程登陆,选择的否
新装mariadb以及消除隐患和设置远程链接_第7张图片
是否删除测试数据库,这个选是
新装mariadb以及消除隐患和设置远程链接_第8张图片
立即重读特权表,这个选是

新装mariadb以及消除隐患和设置远程链接_第9张图片
这个数据库服务端算是装好了。
下面开始链接数据库,首先开启他的远程链接
首先,在服务器上链接mariadb
新装mariadb以及消除隐患和设置远程链接_第10张图片
然后输入命令,use mysql;

select  User,authentication_string,Host from user;

通过命令可以看到当前只有一个用户root,并且Host为localhost,即只能本地访问权限。
开启远程访问权限
一般有两种,改表法,还有种授权法

方法1:改表法

update user set host='%' where user='root';

这个我试过,可能玄学问题,我没有成功

方法2:授权

赋予任何主机访问权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

我用的这个,是测试成功的

你也可以讲root@%改成用户名@ip,只允许指定ip访问

这里有个坑,不要把你的这个授权密码改成和数据库密码一样的,不然会一直报错1045拒绝登录
在这里插入图片描述
提示成功,然后刷新权限表

FLUSH PRIVILEGES;

然后再次查看user表

select  User,authentication_string,Host from user;    

然后建议重启mariadb

这里如果你是云服务器,建议不要马上去链接,你还需要关闭防火墙,selinux,在云服务器控制台开启3306端口

最好是重启下服务器
然后再开启mariadb
新装mariadb以及消除隐患和设置远程链接_第11张图片
然后就连接成功了

下面用pymysql这个模块进行链接

import pymysql
db=pymysql.connect(host='你的数据库ip',user='root',passwd='刚才你设置的登录密码,不是数据库密码',database='你的数据库',charset='utf8',port=3306)
cur=db.cursor()
cur.execute('insert into dytt_tab values(%s,%s)',['内容'])
db.commit()
cur.close()
db.close()

然后就可以了

你可能感兴趣的:(python,mariadb,python,sql,mysql)