CentOS6.5でMySQL5.5.39を使っているときに、データのバックアップ(mysqldump)をしようと思ったところ、”mysqldump: unknown variable“が表示されて、dumpできませんでした。そのときの解決法をメモしておきます。
目次
mysqldump: unknown variable
$ pwd /home/username $ mkdir mysql_lessons $ cd mysql_lessons $ mysqldump -u username -p dummy_db > dummy_db_copy.sql
でmysqldumpをすると、
mysqldump: unknown variable 'symbolic-links=0' mysqldump: unknown variable 'datadir=/var/lib/mysql'
というエラーが出てバックアップができません。実際にはエラーは一つずつしか出ませんが、調べていくうちに、2種類のエラーが出ることが分かりました。
#でコメントアウトをする
そういうときは、MySQLの設定ファイルである、my.cnfをコピーします。その上で、コピー元の設定をファイルを開き、3か所コメントアウトします。
# cp /etc/my.cnf /etc/my.cnf.org # vi /etc/my.cnf [mysqld] character_set_server=utf8 default-storage-engine=InnoDB innodb_file_per_table ft_min_world_len=1 [mysql] default-character-set=utf8 [mysqldump] default-character-set=utf8 # datadir=/var/lib/mysql (←コメントアウトをする) # socket=/var/lib/mysql/mysql.sock (←コメントアウトをする) # Disabling symbolic-links is recommended to prevent assorted security risks # symbolic-links=0 (←コメントアウト) # Settings user and group are ignored when systemd is used (fedora >= 15). # If you need to run mysqld under a different user or group, # customize your systemd unit file for mysqld according to the # instructions in http://fedoraproject.org/wiki/Systemd user=mysql # Semisynchronous Replication # http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html # uncomment next line on MASTER ;plugin-load=rpl_semi_sync_master=semisync_master.so # uncomment next line on SLAVE ;plugin-load=rpl_semi_sync_slave=semisync_slave.so # Others options for Semisynchronous Replication ;rpl_semi_sync_master_enabled=1 ;rpl_semi_sync_master_timeout=10 ;rpl_semi_sync_slave_enabled=1 # http://dev.mysql.com/doc/refman/5.5/en/performance-schema.html ;performance_schema [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
MySQLの再起動
この状態で保存し再起動すると、mysqldumpができるようになりました。
service httpd restart
自分と同じくつまずいてしまった方の参考になれば幸いです。
〔参考サイト〕