December 10, 2014 by Daniel Guzmán Burgos
æ³¨æ„ : ã“ã“ã«æ›¸ã‹ã‚Œã¦ã„る方法ã¯ã€è‡ªèº«ã®è²¬ä»»ã§å®Ÿè¡Œã™ã‚‹äº‹ã€‚プラガブルãªèªè¨¼ã‚’使用ã—ã¦ã„る時ã¯ã“ã®æ–¹æ³•ã¯ä½¿ãˆãªã„。ã¾ãŸã€MySQLã®ã‚·ã‚¹ãƒ†ãƒ テーブルãŒInnoDBã«ã‚る時もåŒã˜ãé©ç”¨ä¸å¯èƒ½ã 。
状æ³
定番ã®ã€ŒMySQLã®rootパスワードをリセットã—ãŸã„ã€ã¨ã„ã†çжæ³ã ãŒã€MySQLã®å†èµ·å‹•ã¯ã§ããš(本番ã®ãƒžã‚¹ã‚¿ãªã©)ã€--skip-grant-tables
を使ã£ãŸãƒªã‚»ãƒƒãƒˆæ–¹æ³•ãŒä½¿ãˆãªã„時。
(訳注 : MySQLã®å†èµ·å‹•ãŒå¿…è¦ã«ãªã‚‹ãƒªã‚»ãƒƒãƒˆæ–¹æ³•ãŒå…¬å¼ãªæ‰‹é †ã¨ã—ã¦åºƒã知られã¦ã„ã‚‹)
ã©ã†ã—ãŸã‚‰ã„ã„ã®ï¼Ÿ
ä»¥ä¸‹ã®æ–¹æ³•ãŒä½¿ãˆã‚‹ã€‚
- å°ã•ãã¦ã‚‚良ã„ã®ã§mysqldã®åˆ¥ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’ç«‹ã¦ã‚‹(InnoDBãªã—)
- user.[frm|MYD|MYI]ファイルをã€ç¾åœ¨ã®datadirã‹ã‚‰æ–°ã—ãç«‹ã¦ãŸã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã®datadirã«ã‚³ãƒ”ーã™ã‚‹
- æ–°ã—ã„インスタンスã§ãƒ¦ãƒ¼ã‚¶æƒ…å ±ã‚’å¤‰æ›´ã—ãŸå¾Œã€ã‚³ãƒ”ーã—ãŸãƒ•ァイルを元ã®å ´æ‰€ã«æˆ»ã™
ç°¡å˜ã ã£ã¦ï¼Ÿãã†ã§ã‚‚ãªã„ãŒã€ã¾ã‚難ã—ãã¯ãªã„ã€‚æ‰‹é †ã‚’è¦‹ã¦è¡Œã“ã†ã€‚
ステップãƒã‚¤ã‚¹ãƒ†ãƒƒãƒ—
æ–°ã—ã„datadirを作りã€ãã®datadirã§
mysql\_install\_db
を実行ã™ã‚‹ã€‚ã“ã¡ã‚‰ã®datadirã¯æœ€çµ‚çš„ã«ã¯å‰Šé™¤ã™ã‚‹äº‹ã«ãªã‚‹ã€‚所有者をmysqlユーザmysqlグループã«ã™ã‚‹ã®ã‚’忘れãªã„よã†ã«ã€‚[root@machina dbdata]# mkdir datadir [root@machina dbdata]# chown -R mysql:mysql datadir/ [root@machina dbdata]# mysql_install_db --datadir=/dbdata/datadir/ --user=mysql Installing MySQL system tables...OK Filling help tables...OK
æ–°ã—ã„インスタンスを起動ã™ã‚‹ã€‚datadirã®ãƒ‘スã€ã‚½ã‚±ãƒƒãƒˆãƒ•ァイルã€ãƒãƒ¼ãƒˆç•ªå·ã«æ³¨æ„ã—よã†ã€‚ã¾ãŸã€InnoDBã¯å¿…è¦ãªã„ã®ã§ã€
--skip-innodb
ã¨--default-storage-engine=myisam
を付ã‘ã¦ç„¡åйã«ã™ã‚‹ã€‚[root@machina datadir]# /usr/sbin/mysqld --basedir=/usr --datadir=/dbdata/datadir --plugin-dir=/usr/lib/mysql/plugin --skip-innodb --default-storage-engine=myisam --socket=/var/run/mysqld/mysql2.sock --port=3307 --user=mysql --log-error=/dblogs/log/error2.log --pid-file=/dbdata/data/mysql.pid &
å…ƒã®MySQLインスタンスã®datadirã‹ã‚‰æ–°ã—ã„インスタンスã®datadirã¸ã€user.*ファイルをコピーã™ã‚‹ã€‚ãれã‹ã‚‰æ–°ã—ã„MySQLインスタンスã«ãƒã‚°ã‚¤ãƒ³ã€‚
[root@machina ~]# cp /dbdata/data/mysql/user.* /dbdata/datadir/mysql/cp: overwrite `/dbdata/datadir/mysql/user.frm'? y cp: overwrite `/dbdata/datadir/mysql/user.MYD'? y cp: overwrite `/dbdata/datadir/mysql/user.MYI'? y [root@machina datadir]# mysql --socket=/var/run/mysqld/mysql2.sock -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g.
flush tables
コマンドを実行ã—ã€ãƒ¦ãƒ¼ã‚¶ãƒ†ãƒ¼ãƒ–ルを開ããªãŠãã†ã€‚ãã®å¾Œã€ãƒ‡ãƒ¼ã‚¿ã‚’確èªã™ã‚‹ã€‚mysql2> flush tables; mysql2> select user, host, password from user where user like 'root'; +------+--------------------------------------+------------------------------------------+ | user | host | password | +------+--------------------------------------+------------------------------------------+ | root | localhost | 696D727429CC43695423FA5F2F0155D92A0AAC08 | | root | 127.0.0.1 | 696D727429CC43695423FA5F2F0155D92A0AAC08 | | root | % | 696D727429CC43695423FA5F2F0155D92A0AAC08 | +------+--------------------------------------+------------------------------------------+ 3 rows in set (0.00 sec)
ã“ã“ã§ã€å¸Œæœ›ã®å€¤ã§ãƒ‘スワードを更新ã™ã‚‹ã€‚
mysql2> update mysql.user set password='*696D727429CC43695423FA5F2F0155D92A0AAC08' where user like 'root'; Query OK, 3 rows affected (0.00 sec) Rows matched: 3 Changed: 3 Warnings: 0
ã‚‚ã†ä¸€åº¦è¦‹ã¦ã¿ã‚‹ã€‚
mysql2> select user, host, password from user where user like 'root'; +------+--------------------------------------+-------------------------------------------+ | user | host | password | +------+--------------------------------------+-------------------------------------------+ | root | localhost | *696D727429CC43695423FA5F2F0155D92A0AAC08 | | root | 127.0.0.1 | *696D727429CC43695423FA5F2F0155D92A0AAC08 | | root | % | *696D727429CC43695423FA5F2F0155D92A0AAC08 | +------+--------------------------------------+-------------------------------------------+ 3 rows in set (0.00 sec)
flush priviledges
を実行ã—ã¦ã‹ã‚‰ãƒã‚°ã‚¤ãƒ³ã—ç›´ã—ã¦ã€æ–°ã—ã„ãƒ‘ã‚¹ãƒ¯ãƒ¼ãƒ‰ãŒæ£ã—ãè¨å®šã•れãŸã‹ç¢ºèªã€‚mysql2> flush privileges; Query OK, 0 rows affected (0.00 sec)
ã“れã§è¨å®šã¯ã§ããŸã®ã§ã€user.*ãƒ•ã‚¡ã‚¤ãƒ«ã‚’å…ƒã«æˆ»ã›ã‚‹ã‚ˆã†ã«ãªã£ãŸã€‚ã“ã®æ™‚ã‚‚ã€ãƒ•ã‚¡ã‚¤ãƒ«ã®æ‰€æœ‰è€…ã¨æ¨©é™ã¯ã€ãã©ã„ã»ã©ç¢ºèªã—よã†ã€‚
[root@machina ~]# cd /dbdata/datadir/mysql/ [root@machina mysql]# cp user.* /dbdata/data/mysql/; chown mysql:mysql /dbdata/data/mysql/user.*; chmod 660 /dbdata/data/mysql/user.* cp: overwrite `/dbdata/data/mysql/user.frm'? y cp: overwrite `/dbdata/data/mysql/user.MYD'? y cp: overwrite `/dbdata/data/mysql/user.MYI'? y
ã“ã®æ™‚点ã§ã‚‚ã†æ–°ã—ãç«‹ã¦ãŸã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã¯ä¸è¦ãªã®ã§ã€ã‚·ãƒ£ãƒƒãƒˆãƒ€ã‚¦ãƒ³ã—ã¦ã‹ã¾ã‚ãªã„。元ã®mysqldã‚’æ¢ã‚ã¦ã—ã¾ã‚ãªã„よã†ã«ã€ã‚ˆãƒ¼ã注æ„ã—よã†ã€‚
[root@machina datadir]# mysqladmin --socket=/var/run/mysqld/mysql2.sock -p shutdown Enter password: 141120 06:59:14 mysqld_safe mysqld from pid file /dbdata/data/mysql.pid ended
最後ã®ã‚¹ãƒ†ãƒƒãƒ—ã¯ã€å…ƒã®mysqldã®æ–¹ã§ã®
FLUSH PRIVILEDGES
ã®å®Ÿè¡Œã 。(パスワードãŒåˆ†ã‹ã‚‰ãš)ã¾ã アクセスã§ããªã„ã¯ãšãªã®ã§ã€mysqldã«SIGHUPシグナルをé€ã‚‹å¿…è¦ãŒã‚る。MySQLã¯ã“ã®ã‚·ã‚°ãƒŠãƒ«ã«ã¯ã€æ¨©é™ãƒ†ãƒ¼ãƒ–ルをリãƒãƒ¼ãƒ‰ã—ã€ãƒ†ãƒ¼ãƒ–ルやãƒã‚°ã€ã‚¹ãƒ¬ãƒƒãƒ‰ã‚ャッシュã€ãƒ›ã‚¹ãƒˆã‚ャッシュをフラッシュã™ã‚‹ã€‚ã¨ã„ã†äº‹ã¯ã€SIGHUPã‚’é€ã‚‹ã¨ãƒ‘ãƒ•ã‚©ãƒ¼ãƒžãƒ³ã‚¹ãŒæ‚ªåŒ–ã™ã‚‹(flush tableã®é …を見よã†)。従ã£ã¦ã€ã©ã®ã‚¿ã‚¤ãƒŸãƒ³ã‚°ã§ã“れを行ã†ã‹ã¯æ…Žé‡ã«æ±ºã‚ã‚‹å¿…è¦ãŒã‚る。[root@machina datadir]# kill -1 $(/sbin/pidof mysqld)
ã“れã§ã€rootã§MySQLã«ãƒã‚°ã‚¤ãƒ³ã§ãã‚‹ï¼
[root@machina datadir]# mysql -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 101208 mysql1> select user, host, password from mysql.user where user like 'root'; +------+--------------------------------------+-------------------------------------------+ | user | host | password | +------+--------------------------------------+-------------------------------------------+ | root | localhost | *696D727429CC43695423FA5F2F0155D92A0AAC08 | | root | 127.0.0.1 | *696D727429CC43695423FA5F2F0155D92A0AAC08 | | root | % | *696D727429CC43695423FA5F2F0155D92A0AAC08 | +------+--------------------------------------+-------------------------------------------+ 3 rows in set (0.00 sec)
スã‚ーマãŒè¦‹ãˆã‚‹ã ã‚ã†ã‹ï¼Ÿã‚‚ã¡ã‚ん見ãˆã‚‹ï¼ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚‚å•題ãªã—ï¼
mysql1> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | percona | | testing | +--------------------+ 4 rows in set (0.03 sec)
ã“れã§ã€MySQLã‚’å†èµ·å‹•ã•ã›ã‚‹ã“ã¨ãªãrootパスワードをリカãƒãƒªã§ãã¦ã€ãƒ€ã‚¦ãƒ³ã‚¿ã‚¤ãƒ ã‚’é¿ã‘られãŸã€‚
ã“ã†ã„ã£ãŸçжæ³ã«ãªã‚‰ãªã„事を望んã§ã„ã‚‹ãŒã€ã‚‚ã—ãã†ãªã£ã¦ã—ã¾ã£ãŸæ™‚ã¯ã€ã‚¢ã‚¯ã‚»ã‚¹æ¨©ã‚’å–ã‚Šæˆ»ã™æ™‚ã®æ–¹æ³•ã®1ã¤ã«ãªã‚‹ã ã‚ã†ã€‚ä»–ã«æ–¹æ³•ã¯ã‚ã‚‹ã ã‚ã†ã‹ï¼Ÿ
ã“ã®æ–¹æ³•を世界ä¸ã«å…¬é–‹ã—よã†ï¼
PlanetMySQL Voting: Vote UP / Vote DOWN