0
点赞
收藏
分享

微信扫一扫

MySQL 数据库迁移,从 5.0.67 迁移到 5.7.25


文章目录

  • ​​数据库迁移​​
  • ​​创建用户名​​
  • ​​导出数据库​​
  • ​​创建数据库​​
  • ​​导入数据库​​
  • ​​大小写问题​​
  • ​​日志文件​​
  • ​​问题1:MySQL Error Number 2013​​
  • ​​问题2:MySQL迁移数据目录后无法启动​​
  • ​​问题3:向已创建的表导入数据变乱码​​
  • ​​问题4: Error 1055​​
  • ​​成功了!​​
  • ​​常用操作​​
  • ​​查看数据库​​
  • ​​查看连接状态​​
  • ​​MySQL 代理​​
  • ​​CentOS 安装 socat​​
  • ​​Ubuntu 安装 socat​​
  • ​​socat 作代理​​

数据库迁移

创建用户名

用户名记录在 mysql.user 数据库中,看了一下表结构是不一样的,那么就没法导出导入了,用户要重新创建。

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

  • ​​MySQL创建用户与授权​​

导出数据库

mysqldump -h server-ip -u root -p RUNOOB > RUNOOB.sql

创建数据库

导入之前需要先创建数据库,导出的 SQL 文件中不包含创建数据库的语句。

mysqladmin -u root -p create RUNOOB

导入数据库

mysql -u root -p RUNOOB < RUNOOB.sql

大小写问题

原先 5.0.67 部署在 Windows 上,Windows 不区分大小写,现在迁移到 5.7.25 是 Linux 系统,Linux 系统区分大小写。

重命名表名

mysql>  ALTER TABLE `db`.`old` RENAME TO `db`.`OLD`;

日志文件

如果 MySQL 没有启动成功,那么检查 MySQL 的日志文件,日志文件位于:/var/log/mysql/error.log

查看日志文件:

cat /var/log/mysql/error.log

问题1:MySQL Error Number 2013

外部访问时报 2013 错误:

MySQL Error Number 2013
Lost connection to MySQL server during query

修改配置文件 ​​/etc/mysql/mysql.conf.d/mysqld.cnf​​​ 注释掉 ​​bind-address = 127.0.0.1​​,因为默认3306端口只允许本地访问的。

问题2:MySQL迁移数据目录后无法启动

[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
[ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
[ERROR] InnoDB: Plugin initialization aborted with error Generic error
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Failed to initialize builtin plugins.
[ERROR] Aborting

修改 ​​/etc/apparmor.d/usr.sbin.mysqld​​ ,参考 《​​MySQL迁移数据目录后无法启动》​​。

问题3:向已创建的表导入数据变乱码

默认的数据库编码是 latin1 !按默认编码创建的数据表,导入数据时全都变成了乱码,将其修改成 utf8。

# /etc/mysql/mysql.conf.d/mysqld.cnf
# 修改处1:添加以下2行
[client]
default-character-set=utf8

[mysqld]
# 修改处2:添加以下3行
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci

  • ​​mysql5.7设置默认编码​​

问题4: Error 1055

  • ​​Mysql Group by 之Error 1055之坑​​
  • 可以在运行时修改,参考《mysql之修改sql_mode》

成功了!

使用 mysqldump 导出 SQL 的办法,可以跨版本、跨平台导入导出,跨得好!

常用操作

查看数据库

mysql> show databases;

  • ​​MySQL查看数据库相关信息​​

查看连接状态

  • ​​MySQL连接查看​​

mysql> show processlist;

MySQL 代理

MySQL 只有一个连接,不像 FTP 那样控制连接和数据连接分开,所以 MySQL 的代理很简单,用 socat 命令就可以实现。

CentOS 安装 socat

在 CentOS 安装 socat 的时候经常会出现无法找到 yum 的安装包的情况,是缺少 epel 的扩展源,首先安装扩展源,然后再安装 socat 。

yum -y install epel-release
yum -y install socat

  • ​​安装socat经常会出现的问题​​

Ubuntu 安装 socat

Ubuntu 默认库里就包含了 socat ,直接安装就好。

sudo apt install socat

socat 作代理

socat -d -lf proxy.log TCP4-LISTEN:3306,reuseaddr,fork,su=nobody TCP4:db.example.com:3306


举报

相关推荐

0 条评论