中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

用delete命令來個不小心刪除了user表

發布時間:2020-08-03 23:41:07 來源:網絡 閱讀:850 作者:sky9890 欄目:數據庫

運行環境:

操作系統:CentOS release 6.8 (Final)

數據庫:MySQL 5.5.52-cll-lve

Web應用軟件:Apache/2.2.15(Unix)

問題:操作mysql數據庫的user表,計劃刪除一條重復的記錄,不小心刪除了整個user表,當時操作的命令是:delete from mysql.user;忘記加where條件。最終導致Linux系統上的考試系統、論壇和監控系統暫停服務。

強烈建設:定期備份數據,可以避免許多風險性發生和損失。

先回顧在服務器上的整個操作過程:

mysql>select *  from mysql.user;

22rows in set (0.01 sec)    #該用戶表中存放了22條記錄

mysql>delete  from mysql.user;  #忘加where條件了

QueryOK, 22 rows affected (0.00 sec)  #直接刪除了22條記錄

mysql>exit

Bye

[root@sky9896data]# mysql -u root -p

Enterpassword:

ERROR1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)    #登錄不了數據庫系統

解決問題過程:

[root@sky9896lib]# find  / -name mysql  #找數據庫安裝路徑

/var/webmin/modules/mysql

/var/lib/mysql

/var/lib/mysql/mysql

/var/lib/mysql20150811/mysql

/usr/bin/mysql

/usr/include/mysql

/usr/include/mysql/mysql

/usr/lib64/mysql

/usr/share/mysql

[root@sky9896mysql]# cd /etc

[root@sky9896etc]# vi my.cnf

[mysqld]

skip-grant-table   #加該條語句,跳躍授權表的限制,無需密碼登錄數據庫

[root@sky9896data]# mysql -uroot –p  

Enterpassword:

mysql>show databases;

+--------------------+

|Database           |

+--------------------+

|information_schema |

|a                  |

|back20150625ultrax |

|cacti              |

|cacti20151220      |

|cacti20160104      |

|edusoho            |

|feifeicms          |

|mysql              |

|performance_schema |

|phpcom             |

|qibosoft           |

|qibosofts          |

|skyboy             |

|study              |

|syslog             |

|test               |

|test1              |

|tt                 |

|ultrax             |

|zabbix             |

+--------------------+

21rows in set (0.02 sec)

Mysql>usemsyql;

mysql>UPDATE user SET Password=PASSWORD('***') WHERE user='root';

mysql>flushprivileges;

mysql>exit

#mysql–uroot -p  

mysql>show databases; #新問題是更新密碼后,看不到大部分數據庫,問題就是在mysql.user表,對數據庫沒有授好權;

+--------------------+

|Database           |

+--------------------+

|information_schema |

|cacti              |

+--------------------+

2rows in set (0.00 sec)

通過多種方式測試,最終通過重新構建user表

#service mysqld stop
#mysqld_safe --skip-grant-tables
還要重新開一個ssh連接:
#mysql
#delete mysql;
#INSERT INTO `user` (`Host`, `User`, `Password`, `Select_priv`, `Insert_priv`, `Update_priv`, `Delete_priv`, `Create_priv`, `Drop_priv`, `Reload_priv`, `Shutdown_priv`, `Process_priv`, `File_priv`, `Grant_priv`, `References_priv`, `Index_priv`, `Alter_priv`, `Show_db_priv`, `Super_priv`, `Create_tmp_table_priv`, `Lock_tables_priv`, `Execute_priv`, `Repl_slave_priv`, `Repl_client_priv`, `Create_view_priv`, `Show_view_priv`, `Create_routine_priv`, `Alter_routine_priv`, `Create_user_priv`, `Event_priv`, `Trigger_priv`, `Create_tablespace_priv`, `ssl_type`, `ssl_cipher`, `x509_issuer`, `x509_subject`, `max_questions`, `max_updates`, `max_connections`, `max_user_connections`, `plugin`, `authentication_string`) VALUES ('%','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'',''),
('127.0.0.1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'',''),
 ('::1','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'',''),
  ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'','');
#flush privileges;
#mysql restart mysql
#mysql –uroot –p

mysql>use mysql

mysql> update user setpassword=password("***") where host=”localhost” and  user="root";  

mysql> updateuser set password=password("***") where host=”%” and  user="root";

mysql>flushprivileges;

   通過以上操作,必須通過密碼登錄數據庫,同時對數據庫都授了相應的權限,在數據庫系統中能看到所有數據庫。在業務系統配置文件時,要注意用戶名與密碼必須與數據庫系統保持一致,否則導致業務應用系統連不上數據庫系統。

   解決整個問題的過程中,要注意幾個事項:

1.數據非常重要,務必做好備份;

2.要掌握數據庫的安全理論,并對實戰授權的操作要熟練;

3.磁盤空間要留夠用,一般少也要幾GB字節,這樣可以保障操作系統、web服務、數據庫服務運行穩定,文件和日志可寫等操作。

解決整個問題的過程中,要注意幾個問題:

1.  RROR 2002 (HY000): Can't connect to localMySQL server through socket '/var/lib/mysql/mysql.sock' (111)

2. ERROR 1045 (28000): Access denied for user'root'@'localhost' (using password: YES)

3. ERROR 2002 (HY000): Can't connect to localMySQL server through socket '/var/lib/mysql/mysql.sock' (2)

以上3個問題,原因在于mysql服務無法啟動,在啟動的過程中延時了,在該案例中,Apache也導致不能自動運行,有的地方說是磁盤空間點滿了造成的,的確是,刪除該 /var/log/httpd/ 目錄下的日志文件,確實能啟動mysql服務了;但其實是該根目錄磁盤空間滿造成服務無法啟動。

[root@sky9896 ~]#df -h

Filesystem      Size Used Avail Use% Mounted on

/dev/sda2        49G  46G     0   100%/

tmpfs           939M 904K  938M   1% /dev/shm

/dev/sda1        93M  54M   35M  61% /boot

/dev/sda5       179G 2.2G  168G   2% /home

    當時,根目錄下確實是滿了,并且導致httpd服務無法自啟,只能通過手動強行啟動,后面對“/”目錄刪除相關資料,可以使用300多兆,所以mysql和Apache服務行都可以運行正常。

[root@sky9896 www]#df -h

Filesystem      Size Used Avail Use% Mounted on

/dev/sda2        49G  46G  381M    100% /

tmpfs           939M 100K  939M   1% /dev/shm

/dev/sda1        93M  54M   35M  61% /boot

/dev/sda5       179G 2.2G  168G   2% /home

    在這里為止,mysql.user表建成了,數據庫更新了密碼并對用戶授權了,騰出“/"磁盤空間,保障各mysql和apache服務運行正常,同時配置各業務應用系統,成功連上數據庫,恢復了業務應用系統。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

竹北市| 新乡市| 微博| 泸西县| 祁东县| 汉阴县| 桂东县| 胶南市| 卢龙县| 云梦县| 武平县| 房产| 伊金霍洛旗| 五华县| 安康市| 清徐县| 上杭县| 古蔺县| 桃园县| 黑河市| 桦南县| 昌黎县| 历史| 桐城市| 安塞县| 桃园市| 米易县| 泰安市| 晋州市| 华宁县| 临江市| 射洪县| 伊金霍洛旗| 蒲城县| 长岛县| 长武县| 桐庐县| 隆昌县| 江达县| 康平县| 潍坊市|