Mysql数据库迁移Mariadb方案
一、 文档描述
l 目的:测试window和linux上MariaDB支持性。
l 原则:window下保留原有Mysql ,安装MariaDB,迁移好数据即可,尽量不要修改业务代码;linux下直接安装新的数据库测试。
本文档同时可做Maria DB数据库安装参考文档。
二、 Window 版本安装测试
1. 下载安装版本:我们用的是10.1系列最新版本
https://downloads.mariadb.org/
2. 本地或服务器转换方法
一定要用HeidiSQL客户端导出Mysql原有数据,并用该客户端导入MariaDB才可以。安装MariaDB保证sevice Name不重复,为保证端口号都用3306,可以先关闭原有的mysql数据库再安装。
3. 停掉原Mysql数据库server服务
4. 安装MariaDB文件,默认安装所有即可。
5. 停止新安装的MariaDB数据库服务(Mysql),启动原来的数据库服务(MySQL57,具体查看原有名字)
6. 用客户端导出原来Mysql数据库
7. 停止原有Mysql服务(Mysql57),启动新安装的数据库服务
8. 用客户端HeidiSQL把原数据库导入到MariaDB数据库,从文件中选择加载sql文件,直接运行即可(不用再开mysql服务)
9. 创建用户,选择用户权限
10. 也可以先安装MariaDB文件,只选安装客户端HeidiSQL,不要选server,方式先把原有数据库文件导出来,再安装新server,导入数据库。
三、 CentOS 7.0 Linux上安装MariaDB-10.1.29 版本测试
1. 在线yum安装
https://mariadb.com/kb/en/library/yum/
2. 离线安装说明
2.1 离线rpm安装方式说明
https://mariadb.com/kb/en/library/installing-mariadb-with-the-rpm-tool/
2.2 离线tar包安装方式说明
1. 下载
2. 安装
安装参考:
https://mariadb.com/kb/en/library/installing-mariadb-binary-tarballs/
https://mariadb.com/kb/en/library/starting-and-stopping-mariadb-automatically/
1. root账号安装
groupaddmysql
useradd-g mysql mysql
cd/usr/local
tar-zxvpf /path-to/mariadb-10.1.29-linux-x86_64.tar.gz
ln-s mariadb-10.1.29-linux-x86_64 mysql
cdmysql
./scripts/mysql_install_db--user=mysql
chown-R root .
chown-R mysql data
2. To startmysqld you should now do:
./bin/mysqld_safe--user=mysql &
3. Autostart of mysqld:
cpsupport-files/mysql.server /etc/init.d/mysql.server
cd/ path-to-your/mariadb-version/support-files/
cpmysql.server /etc/init.d/mysql
chmod+x /etc/init.d/mysql
4. 测试启动:
exportPATH=$PATH:/usr/local/mysql/bin/
mysql-uroot
如果启动有问题:
mkdir/var/log/mariadb
chown-R mysql /var/log/mariadb
ln-s /var/lib/mysql/mysql.sock /tmp/mysql.sock
启动问题参考:
https://www.biaodianfu.com/centos-7-2-mariadb.html
3. 配置数据库
参考:https://www.cnblogs.com/river2005/p/6813618.html
3.1 使用mysql_secure_installation命令进行配置设置密码,会提示先输入密码
mysql_secure_installation
如下:
Entercurrent password for root (enter for none):<–初次运行直接回车
设置密码
Setroot password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码
其他配置
Removeanonymous users? [Y/n] <– 是否删除匿名用户,回车
Disallowroot login remotely? [Y/n] <–是否禁止root远程登录,回车,
Removetest database and access to it? [Y/n] <– 是否删除test数据库,回车
Reloadprivilege tables now? [Y/n] <– 是否重新加载权限表,回车
初始化MariaDB完成,测试登录
mysql-uroot -ppassword
完成。
3.2 配置MariaDB的字符集
查看/etc/my.cnf文件内容,其中包含一句!includedir /etc/my.cnf.d 说明在该配置文件中引入/etc/my.cnf.d 目录下的配置文件。
1. 使用vi server.cnf命令编辑server.cnf文件,在[mysqld]标签下添加
init_connect='SETcollation_connection = utf8_unicode_ci'
init_connect='SETNAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
如果/etc/my.cnf.d 目录下无server.cnf文件,则直接在/etc/my.cnf文件的[mysqld]标签下添加以上内容。
2. 文件/etc/my.cnf.d/client.cnf
vi/etc/my.cnf.d/client.cnf
在[client]中添加
default-character-set=utf8
3. 文件/etc/my.cnf.d/mysql-clients.cnf
vi/etc/my.cnf.d/mysql-clients.cnf
在[mysql]中添加
default-character-set=utf8
4. 支持大小写配置
https://mariadb.com/kb/en/library/identifier-case-sensitivity/
sudovi /etc/my.cnf
在[mysqld]下面添加:
lower_case_table_names= 1
重启mariadb服务即可。(注意,修改一定要在创建数据库之前,对修改之前创建的数据库无效)
5. 全部配置完成,重启mariadb
6. 之后进入MariaDB查看字符集
mysql-uroot -ppassword
mysql>show variables like "%character%";show variables like"%collation%";
显示为
4. 添加用户,设置权限
创建用户命令
mysql>createuser username@localhost identified by 'password';
直接创建用户并授权的命令
mysql>grantall on *.* to username@localhost indentified by 'password';
授予外网登陆权限
mysql>grantall privileges on *.* to username@'%' identified by 'password';
授予权限并且可以授权
mysql>grantall privileges on *.* to username@'hostname' identified by 'password' withgrant option;
mysql>flush privileges;
5. 端口开放
//查看运行状态
firewall-cmd --state
//开发端口
firewall-cmd--zone=public --add-port=3306/tcp --permanent
//重载生效刚才的端口设置
firewall-cmd --reload