mysql的使用

一、Liunx安装mysql

创建一个文件夹mysql

mkdir mysql

进入文件夹下载并安装MySQL官方的 Yum Repository

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。

yum -y install mysql57-community-release-el7-10.noarch.rpm

之后就开始安装MySQL服务器。

yum -y install mysql-community-server

至此安装成功!
下面开始配置:
首先启动MySQL

systemctl start  mysqld.service

查看MySQL运行状态,运行状态如图:

systemctl status mysqld.service

在这里插入图片描述
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

grep "password" /var/log/mysqld.log

在这里插入图片描述
进入mysql,数据上面的初始密码

mysql -uroot -p

因为是初始密码进来的,此时不能做任何操作,需要修改密码

ALTER USER USER() IDENTIFIED BY '123456';

这里有个问题,新密码设置的时候如果设置的过于简单会报错:
在这里插入图片描述
输入下边命令修改密码规则

set global validate_password_policy=0;
set global validate_password_length=1;

这样就可以了,但此时还有一个问题,就是因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:

yum -y remove mysql57-community-release-el7-10.noarch

最后,想要外部用连工具连接mysql,还需要修改用户权限
修改前查看

use mysql;
select host,user from user;

在这里插入图片描述
修改root权限

update user set host='%' where user='root';

刷新

flush privileges;

即可连接!

安装方式(新)二、
打开官网,https://dev.mysql.com/downloads/mysql/
想下载之前版本可点如下:
在这里插入图片描述
centos选择Red Had…
在这里插入图片描述
下载服务端和客户端两个rpm包
在这里插入图片描述
或者通过 wget命令在线下载

wget https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-server-5.6.50-1.el7.x86_64.rpm

wget https://cdn.mysql.com//Downloads/MySQL-5.6/MySQL-client-5.6.50-1.el7.x86_64.rpm

在这里插入图片描述
分别执行安装命令

yum -y install MySQL-server-5.6.50-1.el7.x86_64.rpm

yum -y install MySQL-client-5.6.50-1.el7.x86_64.rpm

安装服务端的时候默认初始密码在/root/.mysql_secret 中,这是个隐藏文件cat /root/.mysql_secret
服务端,客户端下载安装之后启动进入都同上,设置新密码方式有所区别

SET PASSWORD = PASSWORD('123456');

在这里插入图片描述
卸载:https://blog.csdn.net/qq_39470733/article/details/80999080

二、使用 CASE WHEN THEN 完成分段统计

SELECT 
SUM(CASE gender WHEN 1 THEN 1 ELSE 0 END) 男性个数,
SUM(CASE gender WHEN 2 THEN 1 ELSE 0 END) 女性个数
FROM user

三、添加索引

1.添加PRIMARY KEY(主键索引)

mysql>ALTER TABLE table_name ADD PRIMARY KEY ( column )

2.添加UNIQUE(唯一索引)

mysql>ALTER TABLE table_name ADD UNIQUE ( column )

3.添加INDEX(普通索引)

mysql>ALTER TABLE table_name ADD INDEX index_name ( column )

4.添加FULLTEXT(全文索引)

mysql>ALTER TABLE table_name ADD FULLTEXT ( column)

5.添加多列索引

mysql>ALTER TABLE table_name ADD INDEX index_name ( column1, column2, column3 )

四、获取创建时间小于10分钟、超过一小时的数据

1、小于十分钟

SELECT * FROM `user` WHERE createTime > NOW() - INTERVAL 10 MINUTE;

2、超过一小时

SELECT * FROM `user` WHERE createTime < NOW() - INTERVAL 60 MINUTE;

五、查询一张表或多张表的数据插入到另一种表中

SELECT CONCAT("INSERT into idmapping_hbt_copy (staffId,guid,hospitalGuid,enabled) VALUES (", b.staffId ,",", a.guid ,",'f1a1d520-a621-480b-a86e-3ae32b4217d7',1);")
FROM user_doctor a INNER JOIN temp b on a.`name`=b.`name` WHERE a.hospital_guid = 'f1a1d520-a621-480b-a86e-3ae32b4217d7';

通过上边的命令查出插入语句,如下图
在这里插入图片描述
复制插入语句执行命令,完成插入数据。

六、线上数据量大的表在线修改表

先尝试运行一下看sql是否有问题

model=dry-run

pt-online-schema-change -h master_db -u $user -p $pwd \
--charset=utf8 \
--recursion-method=processlist\
--print --$model \
--no-check-alter\
--nocheck-unique-key-change\
--no-version-check \
--alter \
"\
MODIFY COLUMN openid VARCHAR (100),\
ADD INDEX idx_openId_appid (openId, app_id)\
"\
h=master_db,P=3306,D=taogu91,t=user_patient

实际运行

model=execute

pt-online-schema-change -h master_db -u $user -p $pwd \
--charset=utf8 \
--recursion-method=processlist\
--print --$model \
--no-check-alter\
--nocheck-unique-key-change\
--no-version-check \
--alter \
"\
MODIFY COLUMN openid VARCHAR (100),\
ADD INDEX idx_openId_appid (openId, app_id)\
"\
h=master_db,P=3306,D=taogu91,t=user_patient
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值