rpm -ivh mysql57-community-release-el7-10.noarch.rpm

安装
yum install mysql-server
yum install mysql-community-server

启动SQL服务。
systemctl start mysqld.service

检查SQL服务状态。
systemctl status mysqld.service

设置开机启动
systemctl enable mysqld
systemctl daemon-reload


获取第一次安装MySQL后的临时密码用于登陆数据库。
grep "password" /var/log/mysqld.log

登陆MySQL,临时密码直接复制后粘贴即可。
mysql -uroot -p


启动 MySQL:
systemctl start mysqld
查看 MySQL 运行状态:
systemctl status mysqld




初始密码策略要求:包含符号、大小写字母、阿拉伯数字,且必须大于8位。

 ALTER USER 'root'@'localhost' IDENTIFIED BY '~!Qw1234567';


 开启 MySQL 远程访问权限

grant all privileges on *.* to 'king'@'%' identified by '5180it@123456' with grant option;


select host,user from user; # 查询索引

创建就普通索引

CREATE INDEX index_name ON table_name(column_name);

创建唯一索引

ALTER TABLE table_name ADD UNIQUE index_name(`column_name`);

删除索引

DROP INDEX index_name ON table_name;
或者
ALTER TABLE table_name drop INDEX index_name ;

查看表索引

show index from table_name

字段

添加字段

alter table table_name add COLUMN column_name bigint(20) DEFAULT 0 COMMENT '你的备注';

修改字段类型

alter table table_name MODIFY COLUMN column_name bigint(20) DEFAULT 0;

修改字段名称

alter table bg_entity_info change old_col_name new_col_name VARCHAR(36);


删除字段

ALTER TABLE table_name DROP COLUMN column_name;
 SHOW PROCESSLIST;
 SHOW FULL PROCESSLIST;
 SHOW VARIABLES LIKE '%max_connections%';
 SHOW STATUS LIKE '%Connection%';

在某个字段字段之后添加字段使用 AFTER columnName 即可

ALTER TABLE pms_enterprise_info ADD com_channel varchar(100) COMMENT '通讯通道' AFTER lock_funcs;

在第一位添加字段

虽然有 AFTER 语法,但其实没有 BEFORE 语法
要在第一位添加字段,只需要使用 FIRST 即可
ALTER TABLE pms_enterprise_info ADD com_channel varchar(100) COMMENT '通讯通道' FIRST;

修改表名称

ALTER TABLE student RENAME TO tb_students_info;


#数据库中所有表的信息

SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA = '数据库名'

#数据库中每个表的数据量

SELECT table_name,table_rows FROM information_schema.tables

WHERE TABLE_SCHEMA = '数据库名' ORDER BY table_rows DESC;


show variables like 'max_connections';  

show global status like 'max_used_connections';  


设置最大连接数

set GLOBAL max_connections=1000;
show status like 'Threads%';
Threads_connected 跟show processlist结果相同,表示当前连接数。准确的来说,Threads_running是代表当前并发数



数据库不区分大小写

1.用ROOT登录,修改/etc/my.cnf

2.在[mysqld]下加入一行:lower_case_table_names=1

3.重新启动数据库即可。 systemctl restart mysqld.service

mysql> show variables like '%case_table%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 1 |
+------------------------+-------+
1 row in set (0.00 sec)
注:WINDOWS系统不用修改,系统默认就是1
LINUX 系统默认是0。因为LINUX下的脚本都是区分大小写的。


表锁情况

mysql> show global status like 'table_locks%';
  +-----------------------+-----------+
  | Variable_name | Value |
  +-----------------------+-----------+
  | Table_locks_immediate | 490206328 |
  | Table_locks_waited | 2084912 |
  +-----------------------+-----------+  
       Table_locks_immediate表示立即释放表锁数,Table_locks_waited表示需要等待的表锁数,如果Table_locks_immediate / Table_locks_waited > 5000,最好采用InnoDB引擎,因为InnoDB是行锁而MyISAM是表锁,对于高并发写入的应用InnoDB效果会好些。
示例中的服务器Table_locks_immediate / Table_locks_waited = 235,MyISAM就足够了。



1、查询是否锁表
show OPEN TABLES where In_use > 0;

2、查询进程
 show processlist或show full processlist
查询到相对应的进程===然后 kill id

补充:
查看正在锁的事务
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;


查看等待锁的事务

SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; logBin日志

查看是否开启binlog日志

show variables like 'log_bin';



开启binlog,修改my.cnf文件
   server_id=1918
   log_bin = mysql-bin
   binlog_format = ROW

重启mysql服务

systemctl restart mysqld

重新查看
show variables like 'log_%';



binlog文件位于/var/lib/mysql

flush刷新日志,在此刻产生一个新编号的binlog日志文件
flush logs



https://blog.51cto.com/wujianwei/2117249