所在位置:

mysql的基本操作

在日常的工作中,经常忘记一些 mysql 的基本操作,以至于要上网去查找资料,浪费了大量的时间,在这里对mysql的一些基础操作来做一个总结,希望能够对大家有用,下面是一些常用的操作:

创建某个数据库

mysql > CREATE DATABASE school;

在某个数据库创建表

选中数据库

mysql > USE school;

创建表

mysql > CREATE TABLE class(name VARCHAR(64), number INT);

查看某个表结构

mysql > DESC class;

给某个表插入数据

mysql > INSERT INTO class(name, number) VALUES('class1', 40);
mysql > INSERT INTO class(name, number) VALUES('class2', 54);
mysql > INSERT INTO class(name, number) VALUES('class3', 63);

给某个用户授权某个数据库

新增一个密码为 password1user1 用户,这个用户只能在 localhost上登录,并且对所有数据库具有查询、插入、修改、删除的权限 (这个用户 不能给其它用户授权)

mysql > GRANT INSERT, DELETE, UPDATE, SELECT ON *.* TO 'user1'@'localhost' IDENTIFIED BY 'password1';
mysql > FLUSH PRIVILEGES;

新增一个密码为 password2user2 用户,这个用户可以在任何远程的机器登录,并且只能对数据库 mydb1 具有所有的权限 (这个用户 不能给其它用户授权)

mysql > GRANT ALL ON mydb1.* TO 'user2'@'%' IDENTIFIED BY 'password2'
mysql > FLUSH PRIVILEGES;

新增一个密码为 password3user3 用户,这个用户只能在 192.168.1.100 机器上登录,并且能对所有数据库具有所有的权限 (这个用户 可以给其它用户授权)

mysql > GRANT ALL ON *.* TO 'user3'@'192.168.1.100' IDENTIFIED BY 'password2' WITH GRANT OPTION;
mysql > FLUSH PRIVILEGES;

撤销用户权限

撤销用户 user2 的所有权限(但是 user2 这个用户还是存在的)

mysql > REVOKE ALL ON *.* FROM 'user2'@'%';
mysql > FLUSH PRIVILEGES;

删除 user2 这个用户 (用 管理员用户 进入 mysql

mysql > USE mysql;
mysql > DELETE FROM user WHERE user='user1' AND host='localhost';
mysql > FLUSH PRIVILEGES;

备份数据库

备份 school 数据库为 school.sql

$ mysqldump -h localhost -u root -p school > school.sql

还原数据库

使用 mysql 进行还原

$ mysql -h localhost -u root -p school < school.sql

使用 source 方法进行还原 (要先进入到 mysql

mysql > use school;
mysql > source school.sql;

怎么样取消怎在输入的 sql 语句

可以使用行删除或者在 sql 语句的最后输入 \c 来取消

使用垂直的输出格式

可以在 sql 语句的最后输入 \G 来实现

记录命令行的mysql会话

mysql -u root -p --tee=record.out

忘记了mysql的密码

  • 在命令行用 kill -9 mysql的pid 杀掉 mysql 的进程
  • 使用下面的方式启动 mysql
$ /usr/bin/mysqld_safe --skip-grant-tables &
  • 使用下面的命令进入 mysql
$ mysql -u root
  • 使用下面的方式修改密码
mysql > use mysql;
mysql > UPDATE user SET password=PASSWORD('新密码') WHERE user='root';
mysql > FLUSH PRIVILEGES;
  • 在命令行用 kill -9 mysql的pid 杀掉 mysql 的进程
  • 使用下面的命令正常启动 mysql
$ sudo systemctl start mysql

注意:在 mysql 5.7 之后,修改密码要把上面这句

mysql > UPDATE user SET password=PASSWORD('新密码') WHERE user='root';

改为

mysql > UPDATE user SET authentication_string=PASSWORD('新密码') WHERE user='root';

【上一篇】广马前的训练

【下一篇】Linux下的压缩和解压缩详解