mysql 基本操作
1, mysql 授权
===mysql 8.0跟之前的授权方式
mysql> alter user root@localhost identified by 'root' password expire never;
mysql> alter user root@localhost identified with mysql_native_password by 'root';
mysql> flush privileges;
===mysql 8.0跟之后
(2)进行授权远程连接(注意mysql 8.0跟之前的授权方式不同)
1、mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
2、mysql>FLUSH PRIVILEGES;
(3)更改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root' PASSWORD EXPIRE NEVER;
(4)更新root用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
刷新权限
flush privileges;
(5)OK,设置完成,再次使用 Navicat 连接数据库
(5)OK,设置完成,再次使用 Navicat 连接数据库
2,如何查询mysql中是否表被锁
可直接在mysql命令行执行:
show engine innodb status\G;
(只能通过cmd或者shell登录mysql)
查看造成死锁的sql语句,分析索引情况,然后优化sql然后show processlist;
show status like ‘%lock%’
这个语句记录当前锁表状态
show OPEN TABLES where In_use > 0;
另外可以打开慢查询日志,linux下打开需在my.cnf的[mysqld]里面加上以下内容:
slow_query_log=TRUE(有些mysql版本是ON)
slow_query_log_file=/usr/local/mysql/slow_query_log.txt
long_query_time=3
Windows:
在my.ini配置文件的[mysqld]选项下增加:
slow_query_log=TRUE
slow_query_log_file=c:/slow_query_log.txt
long_query_time=3
添加完成之后记得一定要重启mysql服务才能生效记录输出。微笑最后在MySQL客户端中输入命令:
show variables like '%quer%';
核查一哈是否Ok
3,开启mysql慢查询日志
查看配置:
//查看慢查询时间
show variables like "long_query_time";默认10s
//查看慢查询配置情况
show status like "%slow_queries%";
//查看慢查询日志路径
show variables like "%slow%";
//注释
-slow_query_log是否记录慢查询。用long_query_time变量的值来确定“慢查询”。
-slow_query_log_file慢日志文件路径
-long_query_time慢日志执行时长(秒),超过设定的时间才会记日志
参考博客:https://www.cnblogs.com/jpfss/p/9203679.html
4,导入、导出mysql数据库命令
linux下导入、导出mysql数据库命令
一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码
敲回车后会提示输入密码
2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql
注:/usr/local/mysql/bin/ —> mysql的data目录
二、导入数据库
1、首先建空数据库
mysql>create database abc;
2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql
建议使用第二种方法导入。
注意:有命令行模式,有sql命令
5,mysql执行脚本
===删除字段
ALTER TABLE table_name DROP field_name;
===修改字段长度命令
alter table 表名 modify column 列名 类型(要修改的长度);
alter table bank_branch_number modify column bankId varchar(10);
alter table pr_md_supplier_master modify column id_ varchar(250) DEFAULT NULL;
===修改表的注释
alter table test1 comment '修改后的表的注释';
===修改字段的注释
alter table test1 modify column field_name int comment '修改后的字段注释';
–注意:字段名和字段类型
–注意:字段名和字段类型
照写就行
alter table t_policy_examinelog modify column Status varchar(36);
alter table t_policy_examinelog add recordBody text;
alter table t_policy_examinelog modify column recordBody text comment 'json文档';
6,mysql like写法
and (a.COMPANY_NAME like concat(concat('%',#{param}),'%')