MySQL——密碼管理

King軍魂發表於2020-11-09

登入mysql

mysql

mysql>  mysql提示符
預設情況下:使用mysql命令直接登入  等價於mysql -h 127.0.0.1 -u root -p "" 
mysql -h server_host_ip
      -u  user
      -p 密碼
注:mysql管理員為root 和系統root 是兩碼事

關於登入mysql
mysql預設是拒絕遠端登入的
假設一個mysql機器的IP是 192.168.18.254
但是登入時不能使用  mysql -h 192.168.18.254 -u root -p
                      無法登入
正確的方式     mysql -h 127.0.0.1 -u root -p

設定密碼(前提無密碼)退出mysql

mysqladmin -u root password '112'

密碼登入

mysql -uroot -p112	
mysql -u root -p112

修改密碼(前提有密碼)退出mysql

mysqladmin -uroot -p112 password 'qwe'

檢視mysql登入者

mysql> show processlist;
mysql> show full  processlist;		(完整資訊)可以看到程式ID

踢掉登陸者

mysql> kill ID號;					殺死使用者登陸ID 強迫其重新登陸
改掉該使用者的密碼  然後重新整理生效 殺死其登陸程式。對方就會被踢下線,在連線密碼錯誤,無法登陸。

忘記密碼

第一種: 修改配置檔案、跳過密碼

vim /etc/my.cnf

skip-grant-tables		#本地和遠端登陸不管使用者是誰都可以跳過密碼
[mysqld_safe]			#保證mysql正常啟動
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

#重啟並進入mysql
[root@Fox ~]# /etc/init.d/mysqld restart
[root@Fox ~]# mysql	

#修改密碼
mysql> update mysql.user set password=password('112') where user='root';and host=“localhost”;
mysql> flush privileges;			重新整理

#把密碼開起來
[root@Fox ~]# vim /etc/my.cnf
#skip-grant-tables
[root@Fox ~]# /etc/init.d/mysqld restart
[root@Fox ~]# mysql -uroot -p112

第二種 簡單粗暴(刪庫) 慎用!!!

[root@Fox ~]# cd /var/lib/mysql/
[root@Fox mysql]# rm -rf ./*
[root@Fox ~]# /etc/init.d/mysqld restart

mysql相關檔案

/var/lib/mysql  		預設資料放在該目錄下  其實一個資料庫就是一個資料夾
/etc/my.cnf    			配置檔案
/var/log/mysqld.log   	日誌

配置檔案介紹

[mysqld]
在這個配置段之內,將會看到與MySQL守護程式相關的命令

datadir=/var/lib/mysql
MySQL伺服器把資料庫儲存在由datadir變數所定義的目錄中。

Socket=/var/lib/mysql/mysql.sock
MySQL套接字把資料庫程式區域性的或通過網路連線到MySQL客戶。

[safe_mysqld]
這個配置段包含MySQL啟動指令碼所引用的命令。如果使用MySQL4.X或4.X以上版本,必須把這個配置段改成[mysqld_safe]。

log-error=/var/log/mysqld.log
這是MySQL所關聯的錯誤被髮送到的這個檔案。如果使用MySQL4.X或4.X以上版本,必須使用log-error指令替換這條命令。

pid-file=/var/run/mysqld/mysqld.pid
最後,pid-file指令定義MySQL伺服器在運作期間的程式識別符號(PID)。如果MySQL伺服器當前沒有執行,這個檔案應該不存在。

[client]
這個配置把指令傳遞給與MySQL伺服器相關的客戶。

port=3306
MySQL所相關的標準TCP/IP埠是3306。如果需要修改這個埠號(可以增強安全),必須確保用於MySQL客戶與伺服器的所有相應配置檔案中均修改這個號。

socket=/var/lib/mysql/mysql.sock
正像預設的/etc/my.cnf檔案中所定義的那樣,這是控制MySQL客戶與伺服器間通訊的標準套接字檔案。

相關文章