app开发者平台在数字化时代的重要性与发展趋势解析
991
2022-11-23
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~