Mysql命令大全

网友投稿 1007 2022-11-23

Mysql命令大全

Mysql命令大全

文章目录

​​一、数据库​​

​​`设置大小写不敏感`​​​​`设置隔离级别`​​​​`设置时区`​​

​​临时修改​​​​永久修改​​

​​`排序规则`​​

​​查看当前排序规则​​​​设置排序规则​​​​生成修改表排序规则的语句​​​​生成修改表中字段排序规则的语句​​

​​`sql_mode`​​

​​二、用户​​

​​`密码`​​​​`删除用户`​​​​`权限`​​

​​三、库(schema)​​

​​`查看创建库的sql语句`​​

​​四、表​​

​​`查看清理日志表的sql`​​​​`查看创建表的语句`​​​​`表按字段排序`​​​​`alter table 表名 动作`​​​​`查看db_test库有多少张表`​​​​`查询表是否存在`​​​​`修改表名大小写`​​

​​五、导入导出sql​​

​​`在Mysql中导入`​​​​`在Linux命令行导入`​​​​`导出sql`​​

​​六、实操​​

​​`创建数据库,创建用户并授权`​​

一、数据库

mysql> select now() from dual; #查看数据库当前时间show create database 数据库名; #查看数据库创建时的信息select max(version) from schema_version; #查看schema的版本drop schema db_test; #删除数据库show variables like '%storage_engine%'; #查看默认的存储引擎

​​设置大小写不敏感​​

show variables like '%case%';

lower_case_file_system 表示当前系统文件是否大小写敏感,只读参数,无法修改。

ON 大小写不敏感 OFF 大小写敏感

lower_case_table_names 表示表名是否大小写敏感,可以修改。

lower_case_table_names = 0时,mysql会根据表名直接操作,大小写敏感。 lower_case_table_names = 1时,mysql会先把表名转为小写,再执行操作,大小写不敏感。

[mysqld]lower_case_table_names=1

重启mysql

​​设置隔离级别​​

修改配置文件/etc/my-f

[mysqld]transaction_isolation=READ-COMMITTED

​​设置时区​​

查看当前时区

mysql> show variables like '%time_zone%';

临时修改

mysql> set global time_zone = '+8:00';mysql> flush privileges;mysql> exit;

永久修改

vi /etc/my-f

[mysqld]default-time_zone = '+8:00'

重启mysql

​​排序规则​​

查看当前排序规则

mysql> show variables like 'collation%';

设置排序规则

在/etc/my-f的[mysqld]下面添加:

[mysqld]character_set_client_handshake = FALSEcollation_server = utf8mb4_bininit_connect='SET NAMES utf8mb4 COLLATE UTF8MB4_BIN'

生成修改表排序规则的语句

SELECT CONCAT('ALTER TABLE `schema名字.',TABLE_NAME,' COLLATE = utf8mb4_bin;') ssfrom information_schema.`TABLES` tb where tb.TABLE_SCHEMA='schema名字' and tb.TABLE_COLLATION!='utf8mb4_bin'

生成修改表中字段排序规则的语句

SELECT CONCAT('alter table `schema名字`.',TABLE_NAME,' convert to character set utf8mb4 collate utf8mb4_bin;') from information_schema.`COLUMNS` where collation_name is not null and collation_name!='utf8mb4_bin' and table_schema='schema名字' group by TABLE_NAME;

​​sql_mode​​

mysql> select @@sql_mode; #查看当前sql模式SET GLOBAL sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'; #设置sql模式

二、用户

​​密码​​

mysql -uroot -p$tmppasswd -S /app/mysqldata/$PORT/mysql.sock --connect-expired-password -e "set password=password('msds007')"mysqladmin -uroot -p"初始密码" "新密码"#设置root密码update user set password=password("linux@123") where user='root' and host='localhost';ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; #修改root密码

​​删除用户​​

drop user 'test'@'%';

​​权限​​

show grants for root@'localhost'; #查看用户权限#WITH GRANT OPTION将权限传递给第三方,也就是能使得root用户可以对其它用户进行授权grant all privileges on *.* to root@localhost identified by 'Admin_123' WITH GRANT OPTION;revoke all on 库名.* from 用户名@'%'; #取消对库的授权GRANT SELECT ON *.* TO '用户名'@'%' IDENTIFIED BY "123456"; #授予只读权限flush privileges; #刷新权限

三、库(schema)

​​查看创建库的sql语句​​

show create database 库名

四、表

​​查看清理日志表的sql​​

SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM information_schema.TABLES WHERE table_schema='表名' AND TABLE_NAME LIKE '%LOG%';

​​查看创建表的语句​​

SHOW CREATE TABLE 表名 \G;

​​表按字段排序​​

select * from schema_version order by version desc;

​​alter table 表名 动作​​

添加字段---add alter table t1 add mail varchar(50) default "stu@163.com"; #添加表字段,设置默认值 alter table t1 add stu_num char(9) first; #在最前面添加 alter table t1 add pay float(7,2) default 20000 after class; #在class字段后面添加修改字段---modify 在插入表记录之前需要先设计好字段结构 alter table t1 modify mail char(50); #修改表字段的类型 alter table t1 modify mail char(50) after class; #移动表的位置修改字段名---change alter table t1 change pay money float(7,2); alter table t1 change yy age int(1) not null default 28删除字段---drop alter table t1 drop age,drop qq修改表名---rename rename table t1 to t2;

​​查看db_test库有多少张表​​

SELECT COUNT(*) TABLES, table_schema FROM information_schema.TABLES WHERE table_schema = 'db_test' GROUP BY table_schema;

​​查询表是否存在​​

SELECT table_name FROM information_schema.TABLES WHERE table_name ='表名';

​​修改表名大小写​​

lower_case_table_names改为0→备份→表名改成大写

#在dg上执行,会打印把所有表名修改为大写的命令SELECT CONCAT('RENAME TABLE ',TABLE_NAME ,' TO ', UPPER(TABLE_NAME),';') FROM INFORMATION_SCHEMA.`TABLES` WHERE TABLE_SCHEMA='库名';# 把表名从小写改为大写RENAME TABLE t_bill_area_css_def_001 TO T_BILL_AREA_CSS_DEF_001;

五、导入导出sql

​​在Mysql中导入​​

chmod +x /root/mysql_init.sqlmysql -utest -p123456use db_testsource /root/mysql_init.sql;

​​在Linux命令行导入​​

最好用root用户导入

mysql -h192.168.1.2 -uroot -p123456 db_test < mysql_init.sql

-h 指定Mysql服务器所在的机器IP -u 指定用户名 -p 使用密码登录 db_test 表示要操作的数据库

​​导出sql​​

–set-gtid-purged=off:记录binlog日志 备份test库到test.sql文件

mysqldump --set-gtid-purged=off --skip-lock-tables -udb_test -p123456 test > test.sql

六、实操

​​创建数据库,创建用户并授权​​

#创建数据库db_test,设置字符集为utf8mb4create schema if NOT EXISTS db_test default character set utf8mb4 collate utf8mb4_general_ci;#创建用户test,%表示可以从任意主机登录,设置登录密码为123456create user if NOT EXISTS 'test'@'%' identified by '123456';#授权test用户对db_test库拥有所有权限grant ALL on db_test.* to 'test'@'%';flush privileges;

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:shell脚本实现对Mysql数据库的初始化
下一篇:docker命令大全(新手必备)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~