特别是在 CentOS 操作系统上,MySQL 的安装和配置通常非常直接,且能与 Python脚本和库完美集成,从而方便自动化管理和数据操作
本文将详细介绍如何在 CentOS 上安装 MySQL,并通过 Python 进行管理和操作
一、准备工作 在开始之前,确保你的 CentOS 系统是最新的,并且拥有 root权限或能够通过 sudo执行管理命令
以下是更新系统的步骤: bash sudo yum update -y 此外,由于 CentOS8已经在2021 年底结束官方支持,本文将主要关注 CentOS7 和 CentOS Stream8 的安装步骤
如果你在使用 CentOS8,请考虑迁移到 CentOS Stream8 以获得持续的支持和更新
二、安装 MySQL 1. 添加 MySQL Yum Repository MySQL官方提供了一个 YUM 存储库,这使得安装和更新 MySQL变得非常简单
首先,下载并添加 MySQL Yum Repository: bash sudo yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm 对于 CentOS Stream8,你需要使用适用于 RHEL8 的存储库: bash sudo yum localinstall -y https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm 2. 安装 MySQL 服务器 添加存储库后,你可以通过以下命令安装 MySQL 服务器: bash sudo yum install -y mysql-community-server 3. 启动 MySQL 服务并设置开机自启 安装完成后,启动 MySQL 服务并设置其在系统启动时自动启动: bash sudo systemctl start mysqld sudo systemctl enable mysqld 4. 获取临时 root 密码 在 MySQL首次启动后,会在`/var/log/mysqld.log`文件中生成一个临时 root 密码
你可以通过以下命令找到它: bash sudo grep temporary password /var/log/mysqld.log 记下这个密码,稍后在首次登录 MySQL 时会用到
5. 安全配置 MySQL 首次登录 MySQL 后,建议运行`mysql_secure_installation` 脚本来配置安全选项
这包括更改 root 密码、删除匿名用户、禁止 root远程登录以及删除测试数据库等
bash mysql_secure_installation 按照提示操作,输入之前找到的临时密码,并设置新的 root 密码
三、通过 Python 管理 MySQL 现在 MySQL 已经安装并配置好了,接下来我们将展示如何使用 Python 管理 MySQL 数据库
Python 拥有多个强大的库可以与 MySQL 进行交互,其中最常用的是`mysql-connector-python` 和`PyMySQL`
1. 安装 MySQL Connector/Python 首先,确保你的系统上安装了 Python 和 pip
然后,通过 pip 安装`mysql-connector-python`: bash pip install mysql-connector-python 2. 使用 MySQL Connector/Python 连接和操作数据库 下面是一个简单的示例,展示了如何使用`mysql-connector-python` 库连接到 MySQL 数据库并执行一些基本操作: python import mysql.connector from mysql.connector import errorcode try: 建立数据库连接 cnx = mysql.connector.connect( user=root, password=your_password, host=127.0.0.1, database=your_database ) cursor = cnx.cursor() 创建一个新表 add_table =(CREATE TABLE IF NOT EXISTS employees( id INT AUTO_INCREMENT, name TEXT NOT NULL, department TEXT NOT NULL, PRIMARY KEY(id))) cursor.execute(add_table) 插入数据 insert_data =(INSERT INTO employees (name, department) VALUES(%s, %s)) employee_data =( (John Doe, Engineering), (Jane Smith, Marketing), (Mike Johnson, Sales), ) cursor.executemany(insert_data, employee_data) 提交事务 cnx.commit() 查询数据 query =(SELECT id, name, department FROM employees) cursor.execute(query) for(id, name, department) in cursor: print(fID:{id}, Name:{name}, Department:{department}) except mysql.connector.Error as err: if err.errno == errorcode.ER_ACCESS_DENIED_ERROR: print(Something is wrong with your user name or password) elif err.errno == errorcode.ER_BAD_DB_ERROR: print(Database does not exist) else: print(err) else: cursor.close() cnx.close() 在这个示例中,我们首先建立了与 MySQL 数据库的连接,然后创建了一个名为`employees` 的表(如果它还不存在),并插入了一些数据
最后,我们查询并打印了表中的所有记录
3. 使用 PyMySQL `PyMySQL` 是另一个流行的 Python MySQL客户端库
它的使用方式与`mysql-connector-python` 非常相似,但安装和某些细节上略有不同
首先,安装`PyMySQL`: bash pip install pymysql 然后,使用`PyMySQL` 连接和操作 MySQL 数据库: python import pymysql 建立数据库连接 connection = pymysql.connect( host=127.0.0.1, user=root, password=your_password, database=your_d