在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