MySQL数据库常用命令
创建数据库:
create database +(名称);
删除数据库数据库:
drop database +(名称);
显示数据表:
show tables;
创建表:
create table +表名;
删除表:
drop table +表名;
重设MySQL密码方法:
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
mysql -u root mysql
UPDATE user SET password=''??WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
quit;
mysqladmin -u root password '123456‘ pgrep -l mysqld_safe ,查到pid再kill -9 pid mysql -u root -p 记住密码的情况下可以用下面方法修改密码: update user set password=password('新密码') where user='用户名';(在mysql数据库里更改普通用户 密 码),更改之后刷新权限:flush privileges; 也可以使用set更改用户密码:set password=password('新密码'); password()函数具有加密功能 (更改数据库编码方式): alter database 数据库名称 default character set 编码方式 collate 编码方式_bin; (修改数据表名称): alter table 旧名称 rename to 新名称; (修改字段名): alter table 表名 change 旧字段名 新字段名 新数据类型; (修改字段数据类型): alter table 表名 modify 字段名 数据类型; alter table 表名 add 新字段名 数据类型; (删除字段名): alter table 表名 drop 字段名; 在数据表字段尾数加auto_increment,可以实现自动递增。 修改数据库编码 vim /etc/my.cnf 添加: [client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8 或者直接输入:SET character_set_server = utf8; 也可以在创建数据表时在后面指定字符集:ENGINE = MyISAM DEFAULT CHARSET UTF8; Mysql数据库默认使用的引擎是MyISAM,而MyISAM引擎不支持建外键,所以将数据库默认引擎改为 InnoDB。 insert 语句可以不指定字段名添加数据 IN关键字可以查询在集合内的数据,NOT IN则查询不在集合内的数据 between and 关键字用于查询指定范围内的数据,加 NOT则相反。 使用 IS NULL 查询字段是否为空 distinct用于过滤查询的重复数据 修改表字符集 : alter table 表名 convert to character set utf8; 数据备份: mysqldump -uroot -p123456 chapter08>备份路径+备份名称后缀名为sql(备份单个数据库) mysqldump -uroot -p123456 【--database(此参数可以备份多个数据库)】+要备份的多个数据库>备份 路 径+备份名称后缀名为sql(备份多个数据库) mysqldump -uroot -p123456 --all-databases >备份路径+备份名称后缀名为sql(备份所有数据库) 数据库不能还原,只能还原数据库里的数据,数据库被删除后,需要新建数据库,然后才能还原里面的数 据。 mysql -u用户名 -p密码 要还原的数据库 < 已备份的数据库路径+备份名称后缀名为sql(备份单个数据库) (用于创建用户密码): identified by '密码'; 使用insert语句创建的用户,需要使用flush privileges刷新权限才可以登陆数据库。 grant insert,select on *.* to 'user4'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;(创建用户并且赋予对所有数据库具有查询,增加以及对其他用户具有赋予相应权限的功能) (收回了添加权限): REVOKE语句可以收回权限比如 revoke insert on *.* from 'user5'@'localhost'; (收回用户所有权限): revoke all privileges,grant option from 'user6'@'localhost';
数据库起始状态的设定信息是不安全的,任何用户都可以登陆而不需要输密码,所以我们需要作以下设定:
mysql_secure_installation 安全初始化
Enter current password for root (enter for none): 刚下载的mariadb超户是没有密码的,且默认登陆的用户就是超户,所以直接回车
Set root password? [Y/n] 是否为超户设置密码
New password: 输入你设置的密码
Re-enter new password: 再次输入你设置的密码
Remove anonymous users? [Y/n] 是否移走匿名用户
Disallow root login remotely? [Y/n] 不允许超户远程登陆
Remove test database and access to it? [Y/n] 删掉测试的数据库
Reload privilege tables now? [Y/n] 对数据库刷新,让所有的数据同步
MySQL引擎功能对比:
