MySQL操作
MySQL数据库管理
sudo systemctl start mysql # 启动MySQL服务命令
sudo systemctl stop mysql # 停止MySQL服务命令
sudo systemctl restart mysql # 重新启动MySQL服务命令
# MySQL服务随系统自动运行
sudo update-rc.d mysql defaults
# 撤销先前的操作
sudo update-rc.d -f mysql remove
维护和管理MySQL数据库
-
备份数据库内容
sudo mysqldump -u root -p mysql > mysql.sql # 也可以使用以下命令 sudo mysqldump -u root -p --databases mysql > mysql.sql
-
还原数据库内容
sudo mysql -u root -p mysql < mysql.sql
-
添加MySQL数据库用户
# 创建一个名为henry且其口令为987654321的本地MySQL用户,%表示所有主机 CREATE USER 'henry'@'%' IDENTIFIED BY '87654321'; SELECT host,user FROM mysql.user; # 访问MySQL用户信息
测试用户是否可以登录
sudo msyql -uhenry -p
给用户添加权限:
CREATE DATABASE henry; # 创建数据库henry # 将数据库henry的所有权限授予henry用户 GRANT ALL PRIVILEGES ON henry.* TO 'henry'@'%'; FLUSH PRIVILEGES; # 将数据库henry的create,delete,select,update授予henry用户 GRANT CREATE,DELETE,SELECT,UPDATE PRIVILEGES ON henry.* TO 'henry'@'%' IDENTIFIED BY '87654321'; FLUSH PRIVILEGES;
SQL命令格式:
GRANT ALL ON 数据库名称.数据表名称 TO 用户名@主机名(或主机IP地址) IDENTIFIED BY '连接口令'; GRANT 权限1,权限2,... ON 数据库名称.数据表名称 TO 用户名@主机名(或主机IP地址) IDENTIFIED BY '连接口令';
-
授权远程访问数据库
# 将数据库henry的所有权限给远程主机192.168.1.123的jerry用户,其访问密码为12345678 GRANT ALL PRIVILEGES ON henry.* TO jerry@192.168.1.123 IDENTIFIED BY '12345678'; FLUSH PRIVILEGES; # 仅仅授予远程用户jerry create,delete,select,update四项权利 GRANT CREATE,DELETE,SELECT,UPDATE ON henry.* TO jerry@192.168.1.123 IDENTIFIED BY '12345678'; FLUSH PRIVILEGES;
SQL命令格式:
GRANT ALL ON 数据库名称.数据表名称 TO 用户名@远程主机名 IDENTIFIED BY '连接口令'; GRANT 权限1,权限2,... ON 数据库名称.数据表名称 TO 用户名@远程主机地址 IDENTIFIED BY '连接口令';
-
修改用户密码
sudo mysqladmin -u root -p password '12345678'
使用者种方法有漏洞,需要运行清楚历史记录的命令来确保密码的安全性
history -c
-
登录MySQL数据库
mysql -h mysql_server_ip -u username -p password # 访问本地的mysql数据库 sudo mysql -u root -p
-
退出MySQL数据库
quit