何番煎じか分かりませんが、自宅環境で使用しているZabbixのデータベースをMySQL 5.6からMariaDB 10.0.10に移行してみました。
特に理由は無いのですが、職場でMariaDBが~という話が聞こえてきていたので気になったので入れ替えてみることにしました。
検証環境:
$ cat /etc/redhat-release
CentOS release 6.5 (Final)
Linux zabbix.kometch.local 2.6.32-431.11.2.el6.x86_64 #1 SMP Tue Mar 25 19:59:55 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
手順
1. Zabbix関連サービスを停止する。
service zabbix-server stop
service zabbix-agent stop
2. まずは念のためのDBのバックアップ。
mysqldump -uroot -p -x --all-databases > zabbix.sql
3. my.cnfもバックアップ
cp -p /etc/my.cnf /root/
Node.js環境のためにMySQLからMariaDBに移行
とあるシステムエンジニアのメモ帳。何かに向けて駆け抜けている途中。猫2匹に囲まれて奮闘する日々。
4. 上記を参考にMariaDBのレポジトリを追加する。
# MariaDB 10.0 CentOS repository list - created 2014-05-02 12:38 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
5. 既存のMySQL関連のアプリを削除する。
yum remove mysql-server mysql-libs mysql-devel mysql*
6. 追加したレポジトリからMariaDBをインストールする。
yum install MariaDB-server MariaDB-client php-mysql
7. MariaDBを起動する。
service mysql start
8. MariaDBに接続するも何故かエラーが。
# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
9. 一旦セーフモードで起動し、パスワードを変更する。
mysqld_safe --skip-grant-tables &
mysql -u root
MariaDB [(none)]> use mysql;
MariaDB [mysql]> grant all privileges on *.* to root@localhost identified by 'パスワード' with grant option;
MariaDB [mysql]> grant all privileges on *.* to zabbix@localhost identified by 'パスワード' with grant option;
MariaDB [mysql]> flush privileges;
MariaDB [mysql]> quit;
10. MariaDBを通常起動する。
kill -9 [mysqld_safe のPID] [mysqld のPID]
service mysql start
Starting MySQL.. SUCCESS!
11. データベースのアップグレードを行う。
mysql_upgrade -uroot -p
Phase 1/3: Fixing table and database names
Phase 2/3: Checking and upgrading tables
Processing databases
information_schema
mysql
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.help_category OK
mysql.help_keyword OK
mysql.help_relation OK
mysql.help_topic OK
mysql.innodb_index_stats OK
mysql.innodb_table_stats OK
mysql.ndb_binlog_index OK
mysql.plugin OK
mysql.proc OK
mysql.procs_priv OK
mysql.proxies_priv OK
mysql.servers OK
mysql.slave_master_info OK
mysql.slave_relay_log_info OK
mysql.slave_worker_info OK
mysql.tables_priv OK
mysql.time_zone OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysql.user OK
performance_schema
zabbix
zabbix.acknowledges OK
zabbix.actions OK
zabbix.alerts OK
zabbix.application_template OK
zabbix.applications OK
zabbix.auditlog OK
zabbix.auditlog_details OK
zabbix.autoreg_host OK
zabbix.conditions OK
zabbix.config OK
zabbix.dbversion OK
zabbix.dchecks OK
zabbix.dhosts OK
zabbix.drules OK
zabbix.dservices OK
zabbix.escalations OK
zabbix.events OK
zabbix.expressions OK
zabbix.functions OK
zabbix.globalmacro OK
zabbix.globalvars OK
zabbix.graph_discovery OK
zabbix.graph_theme OK
zabbix.graphs OK
zabbix.graphs_items OK
zabbix.group_discovery OK
zabbix.group_prototype OK
zabbix.groups OK
zabbix.history OK
zabbix.history_log OK
zabbix.history_str OK
zabbix.history_str_sync OK
zabbix.history_sync OK
zabbix.history_text OK
zabbix.history_uint OK
zabbix.history_uint_sync OK
zabbix.host_discovery OK
zabbix.host_inventory OK
zabbix.hostmacro OK
zabbix.hosts OK
zabbix.hosts_groups OK
zabbix.hosts_templates OK
zabbix.housekeeper OK
zabbix.httpstep OK
zabbix.httpstepitem OK
zabbix.httptest OK
zabbix.httptestitem OK
zabbix.icon_map OK
zabbix.icon_mapping OK
zabbix.ids OK
zabbix.images OK
zabbix.interface OK
zabbix.interface_discovery OK
zabbix.item_discovery OK
zabbix.items OK
zabbix.items_applications OK
zabbix.maintenances OK
zabbix.maintenances_groups OK
zabbix.maintenances_hosts OK
zabbix.maintenances_windows OK
zabbix.mappings OK
zabbix.media OK
zabbix.media_type OK
zabbix.node_cksum OK
zabbix.nodes OK
zabbix.opcommand OK
zabbix.opcommand_grp OK
zabbix.opcommand_hst OK
zabbix.opconditions OK
zabbix.operations OK
zabbix.opgroup OK
zabbix.opmessage OK
zabbix.opmessage_grp OK
zabbix.opmessage_usr OK
zabbix.optemplate OK
zabbix.profiles OK
zabbix.proxy_autoreg_host OK
zabbix.proxy_dhistory OK
zabbix.proxy_history OK
zabbix.regexps OK
zabbix.rights OK
zabbix.screens OK
zabbix.screens_items OK
zabbix.scripts OK
zabbix.service_alarms OK
zabbix.services OK
zabbix.services_links OK
zabbix.services_times OK
zabbix.sessions OK
zabbix.slides OK
zabbix.slideshows OK
zabbix.sysmap_element_url OK
zabbix.sysmap_url OK
zabbix.sysmaps OK
zabbix.sysmaps_elements OK
zabbix.sysmaps_link_triggers OK
zabbix.sysmaps_links OK
zabbix.timeperiods OK
zabbix.trends OK
zabbix.trends_uint OK
zabbix.trigger_depends OK
zabbix.trigger_discovery OK
zabbix.triggers OK
zabbix.user_history OK
zabbix.users OK
zabbix.users_groups OK
zabbix.usrgrp OK
zabbix.valuemaps OK
Phase 3/3: Running 'mysql_fix_privilege_tables'...
OK
12. Zabbix関連サービスの起動を行う。
service zabbix-server start
service zabbix-agent start
13. Zabbixにログインできることを確認する。