MySQL數據庫密碼重置與存儲路徑修改

重置MySQL數據庫的root用戶密碼
當忘記MySQL的root密碼的時候,可以進行如下的步驟重新設置MySQL的root密碼:
Linux的平臺
1.首先確認服務器出於安全的狀態,也就是沒有人能夠任意地連接MySQL數據庫。 因爲在重新設置MySQL的root密碼的期間,MySQL數據庫完全出於沒有密碼保護的狀態下,其他的用戶也可以任意地登錄和修改MySQL的信息。可以採用將MySQL對外的端口封閉,並且停止相關服務以及所有的用戶進程的方法實現服務器的準安全狀態。最安全的狀態是到服務器的Console上面操作,並且拔掉網線。

2.修改MySQL的配置文件my.cnf
在[mysqld]的段中加上一句:
skip-grant-tables例如:
[mysqld]
datadir=/test/mysql/data
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
保存並且退出vi。

3.重新啓動mysqld
[root@bbs ~]# service mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL... SUCCESS!


4.登錄並修改MySQL的root密碼

[root@bbs ~]# /usr/local/mysql/bin/mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.14 Source distribution
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> UPDATE user SET Password = password ('123456') WHERE User = 'root';
Query OK, 4 rows affected (0.01 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> quit
Bye
這樣密碼就被重置爲123456了,想修改成什麼密碼都可以。

5.將MySQL的配置文件修改回來

將剛纔在[mysqld]的段中加上的skip-grant-tables刪除
保存並且退出vi。
6.重新啓動mysqld
[root@bbs ~]# service mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL... SUCCESS!
之後就可以開啓服務,使用新密碼來登陸mysql了。
7
如果不想修改配置文件,直接使用命令也可以:
先關閉mysql的所有進程
方法一:#killall mysqld
方法二:#ps -aux |grep mysql //查看所有mysql進程
#kill pid //pid是mysql的進程號
然後輸入如下命令

[root@bbs ~]#/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
後續操作同上邊操作方法一樣。
進入“mysql>”命令模式後,所有命令不區分大小寫。

linux下修改存儲路徑
Linux mysql 更改數據存儲路徑,同樣適合rpm安裝的mysql
如果不知道mysql的存儲位置,可先登錄數據庫查看相關安裝信息:
mysql> show variables like '%dir%';
+-----------------------------------------------------+-----------------------------------------+
| Variable_name | Value |
+-----------------------------------------------------+-----------------------------------------+
| basedir | /usr/local/mysql |
| binlog_direct_non_transactional_updates | OFF |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
|
datadir | /data/mysqldb/ |
| ignore_db_dirs | |
| innodb_data_home_dir | |
| innodb_log_group_home_dir | ./ |
| innodb_max_dirty_pages_pct | 75 |
| innodb_max_dirty_pages_pct_lwm | 0 |
| innodb_undo_directory | . |
| lc_messages_dir | /usr/local/mysql/share/ |
| plugin_dir | /usr/local/mysql/lib/plugin/ |
| slave_load_tmpdir | /tmp |
| tmpdir | /tmp |
+----------------------------------------------------+------------------------------------------+
從上面可知我們的數據是放在/data/mysqldb/,我的mysql的數據,是源碼編譯時指定到這裏的,一定要查看自己的路徑。
關閉mysql數據庫,開始修改存儲路徑:
[root@bbs ~]# service mysqld stop
Shutting down MySQL. SUCCESS!

假設新的數據存儲路徑爲/test/mysql/data
1.更改新路徑屬組
chown mysql:mysql /test/mysql/data
2.將原數據全部拷貝到新路徑
cp -a /data/mysqldb/* /test/mysql/data/
3.更改啓動腳本中的配置 vim /etc/rc.d/init.d/mysqld
dJE51.1LCgAA&bo=AQKFAAAAAAABAKE!&su=0111
修改完畢。
重新啓動
[root@bbs ~]# service mysqld start
Starting MySQL..... SUCCESS!
查看修改後的結果:
mysql> show variables like '%dir%';
+-----------------------------------------------------+-----------------------------------------+
| Variable_name | Value |
+-----------------------------------------------------+-----------------------------------------+
| basedir | /usr/local/mysql |
| binlog_direct_non_transactional_updates | OFF |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
|
datadir | /test/mysql/data/ |
| ignore_db_dirs | |
| innodb_data_home_dir | |
| innodb_log_group_home_dir | ./ |
| innodb_max_dirty_pages_pct | 75 |
| innodb_max_dirty_pages_pct_lwm | 0 |
| innodb_undo_directory | . |
| lc_messages_dir | /usr/local/mysql/share/ |
| plugin_dir | /usr/local/mysql/lib/plugin/ |
| slave_load_tmpdir | /tmp |
| tmpdir | /tmp |
+-----------------------------------------------------+------------------------------------------+
修改成功,可以正常使用。
注意:
有時還需要對my.cnf配置文件進行修改,不然mysql會起不來的。/etc/init.d/mysqld與my.cnf修改與否,要看自己的環境,根據實際情況進行修改。
例如;在/etc/init.d/my.cnf中

[mysqld]
datadir=/var/lib/mysql
配置文件與我的啓動腳本衝突,啓動時會報錯,雖然在啓動文件裏改過路徑,但還是會有問題
[root@bbs ~]# service mysqld start
Starting MySQL......... ERROR! The server quit without updating PID file (/var/lib/mysql/bbs.test.pid).
這時候就必須修改才能正常啓動。

注意:以上命令直接複製粘貼,由於編碼問題可能會無法執行,手工輸入就可以正常執行了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章