Linux中通过yum在线安装Mysql5.7,并通过python脚本操作mysql数据库

环境准备:VMware本地centos虚拟机,python开发环境vscode

MYSQL:5.7.44 数据库默认端口3306

MYSQL相关安装路径:

        配置文件:/etc/my.cnf

        数据存储:/var/lib/mysql

        命令文件:/usr/bin和/usr/sbin

第一步 安装mysql

1. 首先检查当前环境是否已经安装有mysql

rpm -qa|grep -i mysql*

2. 卸载centos7自带mariadb数据库,因为centOS自带一个老版本的mariadb-libs与当前mysql包的冲突,故需要卸载

yum remove mariadb-libs

3. 更新yum源

rpm -Uvh  https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

4. 运行命令安装mysql

yum -y install mysql-community-server

5. 安装的过程可能会报gpgkey不存在的错

6. 这个问题是由于mysql的公钥和安装包不符合导致的,使用官网的gpgkey替换/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql中的即可

7. 替换gpgkey之后需要手动导入一下

rpm --import file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

8. 查看是否安装成功

mysql -V

第二步 配置mysql

1. 启动mysql,并设置开机自启动

systemctl start mysqld
systemctl enable mysqld

2. 找到mysql的初始密码

cat /var/log/mysqld.log | grep temp

3. 使用用户名和密码登录mysql,输入之前查看到密码

mysql -u root -p

4.登录后,降低密码的复杂度限制

set global validate_password_policy=0;

5.登录后,降低密码长度限制

set global validate_password_length=4;

6.修改root用户的初始密码

alter user 'root'@'localhost' identified by '123456';

7.授权远程连接

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' identified by '123456';

8.刷新权限

flush privileges;

第三步 通过python脚本连接数据库,并测试表创建和删除

1. 连接数据库

import mysql.connector

# 连接 MySQL 数据库
try:
    conn = mysql.connector.connect(
        host="虚拟机IP地址",
        user="root",
        password="数据库密码",
        database="数据库名称"
    )
    if conn.is_connected():
        print("Connected to MySQL database")

    # 执行一个简单的查询
    cursor = conn.cursor()
    cursor.execute("SELECT VERSION()")
    data = cursor.fetchone()
    print("MySQL Database version:", data)

except mysql.connector.Error as e:
    print(f"Error connecting to MySQL: {e}")

finally:
    # 关闭连接
    if 'conn' in locals() and conn.is_connected():
        cursor.close()
        conn.close()
        print("MySQL connection is closed")

2.表创建

import mysql.connector

# 连接 MySQL 数据库
try:
    conn = mysql.connector.connect(
        host="your_hostname",
        user="your_username",
        password="your_password",
        database="your_database"
    )
    if conn.is_connected():
        print("Connected to MySQL database")

    # 创建一个新表
    cursor = conn.cursor()
    create_table_query = """
        CREATE TABLE test_table (
            id INT AUTO_INCREMENT PRIMARY KEY,
            name VARCHAR(255) NOT NULL,
            age INT
        )
    """
    cursor.execute(create_table_query)
    print("Table 'test_table' created successfully")

except mysql.connector.Error as e:
    print(f"Error connecting to MySQL: {e}")

finally:
    # 关闭连接
    if 'conn' in locals() and conn.is_connected():
        cursor.close()
        conn.close()
        print("MySQL connection is closed")

3.表删除

import mysql.connector

# 连接 MySQL 数据库
try:
    conn = mysql.connector.connect(
        host="your_hostname",
        user="your_username",
        password="your_password",
        database="your_database"
    )
    if conn.is_connected():
        print("Connected to MySQL database")

    # 删除表
    cursor = conn.cursor()
    drop_table_query = "DROP TABLE IF EXISTS test_table"
    cursor.execute(drop_table_query)
    print("Table 'test_table' deleted successfully")

except mysql.connector.Error as e:
    print(f"Error connecting to MySQL: {e}")

finally:
    # 关闭连接
    if 'conn' in locals() and conn.is_connected():
        cursor.close()
        conn.close()
        print("MySQL connection is closed")

以下是构建镜像mysql5.7的Dockerfile: ```dockerfile # 基于centos7镜像构建 FROM centos:7 # 安装必要的软件包 RUN yum -y update && \ yum -y install wget && \ yum -y install tar && \ yum -y install bzip2 && \ yum -y install vim && \ yum -y install net-tools && \ yum -y install gcc && \ yum -y install make && \ yum -y install cmake && \ yum -y install ncurses-devel && \ yum -y install openssl-devel && \ yum -y install libaio-devel && \ yum -y install perl && \ yum -y install numactl && \ yum -y install numactl-devel && \ yum -y install libevent-devel && \ yum -y install git && \ yum -y install epel-release && \ yum -y install pwgen && \ yum -y install python-pip && \ yum -y install python-devel && \ yum -y install python-setuptools && \ yum -y install python-wheel && \ yum -y install python3-pip && \ yum -y install python3-devel && \ yum -y install python3-setuptools && \ yum -y install python3-wheel && \ yum clean all # 下载mysql5.7安装包 RUN wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz # 解压mysql安装包 RUN tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz && \ mv mysql-5.7.35-linux-glibc2.12-x86_64 /usr/local/mysql && \ rm -f mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz # 添加mysql用户和用户组 RUN groupadd mysql && \ useradd -r -g mysql -s /bin/false mysql # 修改mysql目录权限 RUN chown -R mysql:mysql /usr/local/mysql && \ chmod -R 755 /usr/local/mysql # 配置mysql环境变量 ENV PATH=$PATH:/usr/local/mysql/bin # 复制mysql配置文件到容器 COPY my.cnf /etc/my.cnf # 复制mysql初始化脚本到容器 COPY init_mysql.sh /usr/local/mysql/init_mysql.sh # 修改mysql初始化脚本权限 RUN chmod +x /usr/local/mysql/init_mysql.sh # 初始化mysql RUN /usr/local/mysql/init_mysql.sh # 暴露3306端口 EXPOSE 3306 # 启动mysql CMD ["mysqld", "--user=mysql"] ``` 其,my.cnf是mysql的配置文件,init_mysql.sh是mysql的初始化脚本。在Dockerfile,我们首先安装mysql所需的软件包,然后下载并解压mysql安装包,接着添加mysql用户和用户组,修改mysql目录权限,配置mysql环境变量,复制mysql配置文件和初始化脚本到容器,最后运行初始化脚本并启动mysql服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值