我的这个WordPress建的数据库名叫mydb,而mysql默认建有一个管理用的数据库名叫mysql,昨晚我本来想删除博客的数据库再恢复的(整体替换些内容),结果不小心删除掉了mysql的数据库,都是以my开头的,所以很容易就搞错了,其结果就是所有数据库都连接失败。
但是昨天VPS的网络异常经常连接不上,刚才找了一下之前安装php+mysql+nginx的lnmp0.9脚本,摘取了一部分内容进行测试,已成功恢复数据库。
重新建库的脚本是:
#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH #set mysql root password echo "===========================" mysqlrootpwd="root" echo "Please input the root password of mysql:" read -p "(Default password: root):" mysqlrootpwd if [ "$mysqlrootpwd" = "" ]; then mysqlrootpwd="root" fi echo "===========================" echo mysqlrootpwd="$mysqlrootpwd" echo "===========================" /etc/init.d/mysql start /usr/local/mysql/bin/mysql_install_db --user=mysql /usr/local/mysql/bin/mysqladmin -u root password $mysqlrootpwd cat > /tmp/mysql_sec_script<<EOF use mysql; update user set password=password('$mysqlrootpwd') where user='root'; delete from user where not (user='root') ; delete from user where user='root' and password=''; drop database test; DROP USER ''@'%'; flush privileges; EOF /usr/local/mysql/bin/mysql -u root -p$mysqlrootpwd -h localhost < /tmp/mysql_sec_script rm -f /tmp/mysql_sec_script /etc/init.d/mysql restart
只有在mysql数据库里所有数据表被删除时调用才不会出错。
恢复好数据库后再登录phpmyadmin控制台,逐一给各个数据库建各自的用户(如果不是用root用户访问数据库的情况)。
博主是犀利技术宅啊!