02.数据库操作命令
1.重置root密码
# 1.编辑mysql的配置文件/etc/mysql/my.cnf,在[mysqld]段下加入一行“skip-grant-tables
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
# 新增这一行
skip-grant-tables
# 2.重启mysql服务
sudo service mysql restart
# 3.用空密码进入mysql管理命令行,切换到mysql库
mysql
mysql> use mysql
# 4.执行update mysql.user set authentication_string=password('123456') where user='root' and Host ='localhost';把密码重置为123456。退出数据库管理。
mysql> update mysql.user set authentication_string=password('123456') where user='root' and Host ='localhost';
mysql>flush privileges;
mysql>exit
# 5.取消在[mysqld]段下加入一行“skip-grant-tables
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
# 6.重启mysql服务
sudo service mysql restart
2.创建用户
方法1:
# 以下为添加用户的的实例,用户名为guest,密码为guest123,并授权用户可进行 SELECT, INSERT 和 UPDATE操作权限
mysql> use mysql
mysql> INSERT INTO user
(host, user, password,
select_priv, insert_priv, update_priv)
VALUES ('localhost', 'guest',
PASSWORD('guest123'), 'Y', 'Y', 'Y');
mysql> FLUSH PRIVILEGES;
mysql> SELECT host, user, password FROM user WHERE user = 'guest';
# 在添加用户时,请注意使用MySQL提供的 PASSWORD() 函数来对密码进行加密。
注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string
注意:在注意需要执行FLUSH PRIVILEGES
语句。
这个命令执行后会重新载入授权表。
如果你不使用该命令,你就无法使用新创建的用户来连接mysql服务器,除非你重启mysql服务器。
你可以在创建用户时,为用户指定权限,在对应的权限列中,在插入语句中设置为 'Y' 即可,用户权限列表如下:
- 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
方法2:
# 通过SQL的 GRANT 命令,你下命令会给指定数据库TUTORIALS添加用户 zara ,密码为 zara123
mysql> use mysql;
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
-> ON TUTORIALS.*
-> TO 'zara'@'localhost'
-> IDENTIFIED BY 'zara123';
3.修改密码
方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set authentication_string=password('yagnqian') where user='root' and host='localhost';
mysql> flush privileges;
4.管理mysql的命令
连接数据库
mysql -uroot -pmysql mysql -uroot -p
退出数据库
exit quit ctrl + d
显示数据库版本
mysql>select version();
显示时间
mysql>select now();
查看表结构
SHOW COLUMNS FROM 数据表 desc 数据表
创建数据库
create database students charset=utf8;
查看数据库创建语句
mysql>show ceate database students;
删除数据库 drop
drop database students;
查看当前使用的数据库
select database();
创建表
-- 创建表
-- int unsigned 无符号整数 表示正数
-- auto_increment 表示自动增长
-- not null 表示不能为空
-- primary key 表示主键
-- default 默认值
-- create table 数据表名字 (字段 类型 约束[, 字段 类型 约束])
create table students(
id int unsigned primary key auto_increment not null,
name varchar(20) default '',
age tinyint unsigned default 0,
height decimal(5,2),
gender enum('男','女','人妖','保密'),
cls_id int unsigned default 0
)
查看表的创建语句
show create table classes;
修改表-添加字段 alter 关键字 add
alter table classes add age varchar(20);
修改表-修改字段:不重命名版 modify 关键字
alter table classes modify age int unsigned;
修改表-修改字段:重命名版 change 关键字
alter table classes change age newage int unsigned;
修改表-删除字段 drop
alter table classes drop newage;
5.数据库备份和恢复
备份:
运行mysqldump命令
mysqldump –uroot –p 数据库名 > python.sql;
# 按提示输入mysql的密码
恢复:
连接mysql,创建新的数据库
退出连接,执行如下命令
mysql -uroot –p 新数据库名 < python.sql
# 根据提示输入mysql密码