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

数据库迁移

创建用户名

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

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

导出数据库

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

问题4: Error 1055

成功了!

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

常用操作

查看数据库

mysql> show databases;

查看连接状态

mysql> show processlist;

MySQL 代理

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

CentOS 安装 socat

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

yum -y install epel-release
yum -y install 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
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值