在Linux系統中創建數據庫和表, 並使用canal數據同步工具

在Linux系統中創建數據庫和表

進入MySQL數據庫

[root@localhost ~]# mysql -uroot -p
Enter password:

查看數據庫

mysql> show databases;
+--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+

創建數據庫guli

mysql> create database guli;

再次查詢數據庫確認

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| guli               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

在創建表之前先選擇要使用的數據庫

mysql> use guli;

創建表members

mysql> create table members (
    -> id int primary key,
    -> username varchar(100),
    -> age int
    -> );

查看所有表

mysql> show tables;
+----------------+
| Tables_in_guli |
+----------------+
| members        |
+----------------+

在Windows本地創建表members

 

 

 查詢members爲空

mysql> select * from members;
Empty set (0.49 sec)

檢查binlog功能是否有開啓

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | OFF   |
+---------------+-------+

如果顯示狀態爲OFF表示該功能未開啓,開啓binlog功能

退出MySQL

mysql> exit
Bye

修改 mysql 的配置文件 my.cnf

[root@localhost etc]# vim my.cnf

追加內容:

log-bin=mysql-bin     #binlog文件名
binlog_format=ROW     #選擇row模式
server_id=1           #mysql實例id,不能和canal的slaveId重複

MySQL5.7的配置如圖:

 

 重啓MySQL

[root@localhost ~]# service mysqld restart         
Redirecting to /bin/systemctl restart mysqld.service

登錄 mysql 客戶端,查看 log_bin 變量

mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin       | ON    |
+---------------+-------+

 在Windows系統MySQL數據庫中創建canal用戶

 

 

CREATE USER 'canal'@'%' IDENTIFIED BY 'RedFace.ren2020';
GRANT SHOW VIEW, SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;
SELECT DISTINCT CONCAT('User: ''',USER,'''@''',HOST,''';') AS QUERY FROM mysql.user;

 

 

  在Linux系統的MySQL數據庫中創建canal用戶

mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| engine_cost               |
| event                     |
| func                      |
| general_log               |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
31 rows in set (0.00 sec)
mysql> CREATE USER 'canal'@'%' IDENTIFIED BY 'RedFace.ren2020';
Query OK, 0 rows affected (0.02 sec)

mysql> GRANT SHOW VIEW, SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
Query OK, 0 rows affected (0.02 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
+------------------------------------+
| query                              |
+------------------------------------+
| User: 'canal'@'%';                 |
| User: 'root'@'%';                  |
| User: 'mysql.session'@'localhost'; |
| User: 'mysql.sys'@'localhost';     |
| User: 'root'@'localhost';          |
+------------------------------------+
5 rows in set (0.02 sec)

測試連接Linux中的數據庫

 

 

 

 創建canal文件夾

[root@localhost ~]# cd /usr/local
[root@localhost local]# ls
bin  etc  games  include  lib  lib64  libexec  nginx  redis  sbin  share  src
[root@localhost local]# mkdir canal
[root@localhost local]# ls
bin  canal  etc  games  include  lib  lib64  libexec  nginx  redis  sbin  share  src
[root@localhost local]# cd canal/

使用Xshell工具,可以直接將canal.deployer-1.0.24.tar.gz文件拖拽到canal文件夾,並將其解壓

[root@localhost local]# cd canal/
[root@localhost canal]# rz -E
rz waiting to receive.
[root@localhost canal]# ls
canal.deployer-1.0.24.tar.gz
[root@localhost canal]# tar zxvf canal.deployer-1.0.24.tar.gz

更改配置信息

[root@localhost canal]# cd conf/example/
[root@localhost example]# ls
instance.properties
[root@localhost example]# vim instance.properties 

我更改後的配置信息如下【紅色爲要更改的地方】

#################################################
## mysql serverId
canal.instance.mysql.slaveId = 1234

# position info
canal.instance.master.address = 192.168.211.135:3306
canal.instance.master.journal.name =
canal.instance.master.position =
canal.instance.master.timestamp =

#canal.instance.standby.address = 
#canal.instance.standby.journal.name =
#canal.instance.standby.position = 
#canal.instance.standby.timestamp = 

# username/password
canal.instance.dbUsername = canal
canal.instance.dbPassword = RedF***.ren20**
canal.instance.defaultDatabaseName =
canal.instance.connectionCharset = UTF-8

# table regex
canal.instance.filter.regex = .*\\..*
# table black regex
canal.instance.filter.black.regex =

#################################################

啓動canal

[root@localhost canal]# cd bin/
[root@localhost bin]# ls
startup.bat  startup.sh  stop.sh
[root@localhost bin]# ./startup.sh

查看canal狀態

[root@localhost bin]# ps -ef | grep canal

 

其他MySQL命令

停止MySQL

[root@localhost ~]# service mysqld stop
Redirecting to /bin/systemctl stop mysqld.service

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章