- 论坛徽章:
- 0
|
1.我对数据库不熟,是菜鸟,此过程有问题,希望大家能给我提出来
2.
mysql> status;
--------------
mysql Ver 14.14 Distrib 5.1.35, for i686-redhat-linux-gnu (i686-redhat-linux-gnu) using EditLine wrapper
Connection id: 480
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.1.35-mysql-log compiled-by-WinLinKer
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 21 hours 43 sec
Threads: 17 Questions: 142646741 Slow queries: 0 Opens: 304 Flush tables: 1 Open tables: 298 Queries per second avg: 1885.789
--------------
3.cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
SYSFONT="latarcyrheb-sun16"
4.mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
8 rows in set (0.00 sec)
5. 使用mysqldump -uUSER -pPWSSWORD dbname > backdbname 完全备份数据库
然后使用 mysql -uUSER -pPWSSWORD dbname < backdbname 这样恢复数据库无任何问题
6. 我每天凌晨5点使用第5步的方法完全备份数据库(数据很少的,也就100多M)备份完成后,立即清除凌晨5点前的binlog二进制日志文件
7. 我的想法是当数据库发生故障后,首先使用 mysql -uUSER -pPWSSWORD dbname < backdbname 恢复上次完全备份的数据库,
然后使用下面的方法使用增量恢复数据
mysql -uUSER -pPWSSWORD dbname < backdbname
DATA_DIR="/data/mysql-bin-log/"
for BINFILE in `ls $DATA_DIR/mysql-bin.0* |sort`;
do
RESTORECMD="mysqlbinlog $BINFILE | mysql -uUSER -pPWSSWORD"
eval $RESTORECMD
done
问题就在这里,使用mysqlbinlog恢复数据后,中文全是乱码,而mysql -uUSER -pPWSSWORD dbname < backdbname 恢复无任何问题 |
|