Mysql使用过程中遇到的一些问题

blast2go本地化需要用到mysql,操作系统Centos 7。

1. 卸载之前的mysql

之前的版本是mysql5.6,想要更新到mysql5.7。

  1. 查看mysql安装了哪些东西。

    1
    rpm -qa |grep -i mysql

  1. 开始卸载

    1
    yum remove XXX

  1. 查看卸载是否完成

  2. 查找mysql相关目录

    1
    find / -name mysql

  1. 删除相关目录

    1
    2
    3
    rm -rf XXX
    rm -rf /etc/my.cnf
    rm -rf rm -rf /var/log/mysqld.log

2. 安装Mysql5.7

  1. 安装mysql源

    1
    2
    3
    4
    wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
    yum localinstall mysql57-community-release-el7-11.noarch.rpm
    # 检查是否安装成功
    yum repolist enabled | grep "mysql.*-community.*"

  1. 启动mysql服务

    1
    2
    3
    systemctl start mysqld
    # 查看状态
    systemctl status mysqld

    这里可能会遇到 “Another mysqld server running on port 3306 error”,可以采用netstat -lp | grep 3306 查找占用这个端口号的进程,kill 这个PID。(我发现占用这个3306的是mysql??)。

  2. 修改root密码

    我用root身份导入数据的时候,提示我要修改密码。生成的默认密码在 /var/log/mysqld.log 文件中。使用 grep 命令找到日志中的密码。

    1
    grep 'temporary password' /var/log/mysqld.log

1
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY '123,c%vPl9ek';

或者:

1
2
3
mysql> use mysql;
mysql> update mysql.user set authentication_string=password('123,c%vPl9ek') where user='root';
mysql> flush privileges;

3. 导入数据

1
mysql -u root -p < b2gdb.sql

会出现莫名其妙的错误,“ERROR 1819 (HY000) at line 4: Your password does not satisfy the current policy requirements”,但是我的密码是符合它的规则的。最后采取的办法是把检验密码的插件删了。

1
mysql>uninstall plugin validate_password;

有试着导入数据,这次的错误是:

“ERROR 1101 (42000) at line 9: BLOB, TEXT, GEOMETRY or JSON column ‘description’ can’t have a default value”

先查看了sql_mode

1
2
mysql> select @@session.sql_mode;
mysql> select @@global.sql_mode;

之后重新设置sql_mode

1
2
set sql_mode='';
set global sql_mode='';

重新打开一个终端,进入mysql,查看sql_mode

1
select @@global.sql_mode;

在尝试导入数据,成功。

4. blast2go

1
2
3
4
5
6
cd data1/data/blast2go/
mysql -u root -p < b2gdb.sql
mysql -u root -p -e "GRANT ALL ON b2gdb.* TO 'blast2go'@'localhost' IDENTIFIED BY 'blast4it';"
mysql -u root -p -e "FLUSH PRIVILEGES;"
# 这一步很耗时
nohup time mysql -s -u root -p b2gdb < go_monthly-assocdb-data > mysql.out 2>&1 &

5. 参考