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
当前共有 1 条评论