Docker Python Mysql

docker pull mysql:5.7

docker run -itd -p 8070:3306 -v /hadoop-data/work/sl/project/mysql/data:/var/lib/mysql -v /hadoop-data/work/sl/project/mysql/conf.d:/etc/mysql/conf.d --name=qa_mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

mysql -h host_ip -P port -u root -p123456

show …

Jerry Su Sep 16, 2021 1 mins

docker pull mysql:5.7

docker run -itd -p 8070:3306 -v /hadoop-data/work/sl/project/mysql/data:/var/lib/mysql -v /hadoop-data/work/sl/project/mysql/conf.d:/etc/mysql/conf.d --name=qa_mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

mysql -h host_ip -P port -u root -p123456

show databases;

show tables from database_name;         # use database_name; show tables;

show columns from table_name;           # desc table_name;

seletc * from table_name limit n;       # head n row data

select * from table_name where id = 0;  # conditional search

select count(id) from table_name;       # data total

delete from table_name;                 # delete table data

1. pymysql.err.DataError: (1366, “Incorrect string value: ‘\xE5\xA4\xA9\xE6\xB9\x96…’ for column ‘question’ at row 1”)

原因:由于建表的时候没有指定数据库字符集, 保存中文的时候就会报错:pymysql.err.InternalError: (1366, …)

mysql>ALTER TABLE your_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;
or
mysql>alter table 表名 convert to character set utf8mb4;

2.(2006, “MySQL server has gone away (BrokenPipeError(32, ‘Broken pipe’))”);

默认超8小时,连接自动断开

    def _is_alive(self):
        """检查连接是否失活"""
        try:
            self.conn.ping(reconnect=True)
        except:
            self.conn = pymysql.connect(host=MYSQL_HOST,
                                        user=MYSQL_USER,
                                        port=MYSQL_PORT,
                                        password=MYSQL_PWD,
                                        database=MYSQL_DB,
                                        charset='utf8mb4',
                                        local_infile=True)
            self.cursor = self.conn.cursor()

Read more:

Related posts: