1.准备mysql及数据
1.1清理mariadb以免冲突
(1)
yum list installed |grep mariadb 查看是否安装Mariadb服务
yum -y remove mariadb 删除Mariadb
或
rpm -qa |grep mariadb
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
(2) yum list installed |grep mysql 查看是否安装MySQL
yum -y remove mysql 删除MySQL
rm -rf /etc/my.cnf
(
3
)删除MySQL和mariadb相关文件夹
非必须
find / -name mariadb
find / -name mysql
(5)添加MySQL组
groupadd mysql
(6)建MySQL用户并指定到MySQL组
useradd -g mysql mysql
(7)给MySQL用户添加密码
passwd mysql
1.2 安装mysql(非专业严谨的)
在此页面找到 mysql版本及适用系统,下载 bundle 捆版本
https://downloads.mysql.com/archives/community/
可用 root安装也可用mysql用户安装
tar xf MySQL-5.6.51-1.el7.x86_64.rpm-bundle.tar
含 7个 -
MySQL-client-5.6.51-1.el7.x86_64.rpm
MySQL-devel-5.6.51-1.el7.x86_64.rpm
MySQL-embedded-5.6.51-1.el7.x86_64.rpm
MySQL-shared-5.6.51-1.el7.x86_64.rpm
MySQL-shared-compat-5.6.51-1.el7.x86_64.rpm
MySQL-test-5.6.51-1.el7.x86_64.rpm
MySQL-server-5.6.51-1.el7.x86_64.rpm
以 rpm -ivh 或 yum install安装
MySQL-server-5.6.51-1.el7.x86_64.rpm最后安装 MySQL-test-5.6.51-1.el7.x86_64.rpm不安装
复制 mysql配置文件 模板 到 my-default.cnf为/etc/my.cnf
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
vim /etc/my.cnf命令修改文件内容,这里注意将最下面的【sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES】注释掉 不然可能登录不上 。
[mysql] #mysql 客户端
default-character-set=utf8 mb4 #设置默认字符集
socket = /var/lib/mysql/mysql.sock #添加socket 路径 , 本地连接 的套接字文件
[mysqld] #mysql 服务端
port = 3306
socket = /var/lib/mysql/mysql.sock
basedir = /opt/mysql # 改 安装位置
datadir = /opt/mysql/data # 改 数据存放位置
character-set-server=utf8
default-storage-engine=INNODB #默认的存储引擎
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client] #客户端设置,即客户端默认的连接参数
port=3306
socket=/var/lib/mysql/mysql.sock
因为历史遗留问题,MySQL 中的 utf8 编码并不是真正的 UTF-8,而是阉割版的,最长只有3个字节。当遇到占4个字节的 UTF-8 编码,例如 emoji 字符或者复杂的汉字,会导致存储异常。 utf8 mb4 是 utf8的超集 , 是 变长的编码机制,可以用1~4个字节存储 。
初始化数据库 ( 后面操作没有使用上面的 my.cnf , 且未建立 my.cnf , 路径都是默认的 )
cd /bin
./mysql_install_db --user=mysql
启动
service mysql start 或 s ys temctl start mysqld
service mysql status
chkconfig mysql on 或 systemctl enable mysql
配置 mysql(设置密码等)
mysql_secure_installation
mysql -uroot -p
直接回车,查看初始密码:
cat /root/.mysql_secret
登录后修改密码:
mysql> SET PASSWORD = PASSWORD('111111');
mysql> flush privileges; 即时生效
放开 远程登录:
mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '111111' WITH GRANT OPTION;
mysql的文件 默认 所在的位置 参考 :
/usr/bin(客户端程序和脚本)
/usr/sbin(mysql服务器)
/var/lib/mysql/(日志文件和数据库)
/usr/share/doc/packages(文档)
/usr/include/mysql(包含(头)文件)
/usr/lib/mysql(库文件)
/usr/share/mysql/(错误消息和字符集文件)
/usr/share/sql-bench(基准程序)
建数据库和数据
create database dbtest 1 utf8 ; 新版本 mysql应为utf8bm4
use dbtest ;
CREATE TABLE c ourse(Cno VARCHAR(20) ,Cname VARCHAR(20) ,Tno VARCHAR(20) );
INSERT INTO course values ("6-166","数字电路",856);
INSERT INTO course values ("9-888","高等数学",831);
mysqldump -h 127.0.0.1 -uroot -proot123 db test > db test.sql
obclient -h 127.0.0.1 -P 2883 -uroot@sys -p -c -A oceanbase
登入 ob后 source db test.sql
3.使用 data x迁移 MySQL 数据到 OceanBase 集群
datax 源码方式 需要下载并编译。编译 datax需要 maven ,使用 maven需要java环境
使用 Datax包方式 数据迁移 (感觉是写入端要有表结构)
下载 Datax 并解压
wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz
tar -xf datax.tar.gz -C /usr/local/
cd /usr/local/datax
删除 datax中的隐藏文件 不然会出问题
find /usr/local/datax/plugin -name ".*" | xargs rm -f
或者
cd /usr/ local /datax/ plugin /reader && rm -rf .*
cd /usr/ local /datax/ plugin /writer && rm -rf .*
yum install -y python2 java
-- 生成模板文件
python2 /usr/local/datax/bin/datax.py -r mysqlreader -w oceanbasev10writer > /usr/local/datax/job/my2ob.json
# 根据实际环境修改
vi m /usr/local/datax/job/my2ob.json 只能每个表配置一段
cat > /usr/local/datax/job/my2ob.json <<"EOF"
{
"job": {
"setting": {
"speed": {
"channel": 2,
},
"errorLimit": {
"record": 10
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "root",
"password": " 111111 ",
"splitPk": "id",
"column": ["*"],
"connection": [
{
"jdbcUrl": [
"jdbc:mysql://1 27.0.0.1 :3306/ dbtest "
],
"table": [
" c ourse "
]
}
]
}
},
"writer": {
"name": "oceanbase v10 writer",
"parameter": {
"writeMode": "insert",
"username": "root",
"password": " 111111 ",
"writerThreadCount": 5,
"column": [
"*"
],
"connection": [
{
"jdbcUrl": "||_dsc_ob10_dsc_||ob demo : sys ||_dsc_ob10_dsc_||jdbc:oceanbase://127.0.0.1:2883/oceanbase?useUnicode=true&characterEncoding=utf-8",
"table": [
" c ourse "
]
}
]
}
}
}
]
}
}
EOF
信息说明: ||_dsc_ob10_dsc_||ob demo :my_tenant1||_dsc_ob10_dsc_||jdbc:oceanbase://127.0.0.1:2883/oceanbase?useUnicode=true&characterEncoding=utf-8",
_dsc_ob10_dsc_ 是固定字 ob demo :my_tenant1 是集群名:租户名 127.0.0.1:2883/oceanbase oceanbase是库名
执行数据迁移
python2 /usr/local/datax/bin/datax.py /usr/local/datax/job/my2ob.json
报错, 可以查 DATAX日志
正常结果为
2022-12-22 00:40:04.393 [job-0] INFO JobContainer -
任务启动时刻
: 2022-12-22 00:39:53
任务结束时刻
: 2022-12-22 00:40:04
任务总计耗时
: 10s
任务平均流量
: 348.26KB/s
记录写入速度
: 10830rec/s
读出记录总数
: 108309
读写失败总数
: 0
以下为视频中的工具介绍:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22333459/viewspace-2928960/ ,如需转载,请注明出处,否则将追究法律责任。