1. 安装mysql
1.1 下载并安装
CentOS 7默认的软件仓库中没有MySQL,需要从MySQL官网下载安装文件并手动安装。安装前需要先检查系统是否已安装了MariaDB,如已安装需要先卸载它。安装过程中可能会出现“缺少依赖库”的错误,需要先安装所需的依赖库。
sudo yum remove mariadb-libs
sudo yum install -y wget
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
sudo yum install -y mysql-server
1.2 初始化mysql
安装完毕之后,需要进行初始化操作,否则无法正常启动mysql服务。在初始化之前,需要修改mysql配置文件,将字符集修改为utf8,否则可能会出现中文乱码的问题。
vim /etc/my.cnf
在[mysqld]下面添加:
character-set-server=utf8
collation-server=utf8_general_ci
修改完毕之后,进行初始化操作:
sudo systemctl start mysqld
sudo mysqld --initialize
初始化之后,系统会自动生成一个随机密码,可以在/var/log/mysqld.log中查看。需要使用这个密码进行登录后,才能进行后续的操作。第一次登录需要修改密码。
sudo systemctl stop mysqld
sudo systemctl start mysqld
sudo mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
1.3设置远程访问权限
默认情况下,mysql只允许本地访问,需要手动开启远程访问权限。
打开mysql配置文件:
vim /etc/my.cnf
在[mysqld]下面添加两行:
bind-address = 0.0.0.0
skip-name-resolve
重启mysql服务:
sudo systemctl restart mysqld
进入mysql命令行,创建远程访问的用户:
GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
其中,remote表示远程访问的用户名,%表示允许任何ip访问,password为密码。
设置完成后,需要重启mysql生效。
2. 安装mysqlclient
2.1 安装依赖
在CentOS 7上安装mysqlclient需要先安装一些依赖库。
sudo yum install -y epel-release
sudo yum install -y python-devel mysql-devel
安装完依赖库后,使用pip安装mysqlclient模块:
pip install mysqlclient
安装过程中可能会出现找不到mysql_config的错误,需要指定mysql_config的路径:
sudo yum install -y mysql-devel gcc
sudo pip install --no-cache-dir mysqlclient --mysql-config=/usr/bin/mysql_config
2.2 遇到的坑
在安装mysqlclient时,可能会出现以下错误:
ImportError: libmysqlclient.so.18:无法打开共享对象文件:没有那个文件或目录
这是因为系统中缺少libmysqlclient.so.18这个库文件。可以使用以下命令找到这个文件的位置:
sudo find / -name libmysqlclient.so.18
然后找到这个文件的位置,将它的路径添加到/etc/ld.so.conf文件中:
sudo vim /etc/ld.so.conf
在文件最后添加:
/usr/lib64/mysql
保存并执行以下命令:
sudo ldconfig
然后再重新安装mysqlclient即可。
2.3 小结
在安装mysqlclient时,如果遇到缺少依赖库或者缺少libmysqlclient.so.18等错误,可以通过安装依赖库或者手动添加库文件路径来解决。需要注意的是,不同的系统可能会有不同的解决方法,需要根据具体情况进行调整。