作者:菠萝和尚 | 来源:互联网 | 2023-08-13 08:29
概述:在学习pythonweb的时候数据库和python的连接是一个很重要的地方,但是在windows安装mariadb的时候遇到了一些问题,最终选择远程连接红帽上的数据库,发现这样也十分方便,在使
概述:
在学习python web的时候数据库和python的连接是一个很重要的地方,但是在windows安装mariadb的时候遇到了一些问题,最终选择远程连接红帽上的数据库,发现这样也十分方便,在使用过程中还遇到了诸如中文无法写入数据库的问题,这里进行一下总结。
1.python连接mariadb
mariadb本来就是mysql的一个分支,所以基本方法和mysql连接python是一样的,由于使用的是pycharm,本以为import mysql发现红色下划线后直接输入alt+enter就能自己用pip下载好,结果发现不是,pip安装的时候会报出一个vc9的错误,经过百度,发现需要下载python-mysql的支持包,下载地址:python-mysql-connector。
下载后直接安装,之后在pycharm中import mysql即可使用了。
2.mariadb如何允许非本机连接
[root@localhost ~]# mysql -uroot -p
Enter password:
登陆数据库
MariaDB [(none)]> grant all privileges on *.* to 'root'@'192.168.1.104' identified by 'redhat';
输入如上语句,即开放了192.168.1.104ip所对应的主机对该数据库的访问权限,当然实际中肯定不会将root用户的全部权限释放个一个固定ip,这里只是在内网的一个简单测试。
3.mariadb如何插入中文
我数据库的所在的操作系统是:
Red Hat Enterprise Linux Server release 7.1 (Maipo)
需要修改如下文件,即可对数据库插入中文,原理上就是让客户端,服务端的字符集都变成utf-8即可。
/etc/my.cnf
[mysqld]
init_cOnnect='SET NAMES utf8'
character-set-server=utf8
/etc/my.cnf.d/mysql-clients.cnf
[mysql]
default-character-set=utf8
/etc/my.cnf.d/client.cnf
[client]
default-character-set=utf8
将这三处修改之后,重启数据库服务,在这之后创建的数据库(create database *)都可以插入中文啦,但是之前的数据库如果也想支持,需要进行一点修改,如下
ALTER DATABASE `databases_name` COLLATE 'utf8_bin';
如果这样设置之后,您的数据库还是不可以插入中文,那就要考虑下其他的编码,比如终端的编码,我使用的是xshell终端编码如下