Author: haoransun
Wechat: SHR—97
mysql国内镜像下载网址
https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/
开源镜像站点汇总
http://segmentfault.com/a/1190000000375848
https://opsx.alibaba.com/mirror/search?q=mysq5.7&lang=zh-CN
安装 jdk
手动解压
1 | cd /usr/local/geek/ |
wget 方式不推荐使用,会出现无法解压的情况,用wget命令直接下载的JDK,这是问题的根源。
去Oracle官网下载过jdk的童鞋应该都知道,下载之前需要同意Oracle的安装协议,不然不能下载,但是用wget的方式,默认是不同意,虽然能下载下来,但是下载下来的文件会有问题,所以在Linux上解压一直失败。
后来去官网下载好,然后传到服务器上,再解压就没有问题了。
yum 安装
1 | yum search java | grep jdk |
rpm 安装
1 | rpm -ivh 指定安装包 |
CentOS7 安装 MySQL5.7
安装环境:CentOS7 64位 mini版,安装MySQL5.7
mysql-client和server的区别:
本质上的区别是:server是执行一个crud操作,client是发送一个crud操作
server是把sql语句翻译成对内存和文件的操作,也就是说,server是直接操作文件的。
而client是对数据库/表进行操作,不是直接对文件进行操作。
举个例子:
①client:我用一个Navicat去链接一个数据库,这个Navicat就是client。
②server:我有多个mysql服务实例,他们可以位于不同的端口(这句不重要),但是他们是挂载在了宿主机同一个目录下的(这句重要,对内存/文件进行操作了),而且数据共享(这句也不重要)。
小知识点:
①sql只是去知道server如何去操作数据。
②即使C/S在同一台机器上,他们也是通过网络通讯的。
1. 配置 YUM源
在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/
1 | 下载mysql源安装包 |
由于某些原因,下载过慢,可以参考最上方的国内网址进行下载,如下所示:
https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql57-community-el7/
- 1 右键选择,复制链接地址,到Linux中 wget 链接地址,下载 xxx.rpm安装包
- 2 sudo rpm -ivh 上述mysql安装包
- 3 安装MySql sudo yum install mysql-server
看到上图所示,则表示安装成功。
2. 启动MySQL服务
1 | systemctl start mysqld |
查看MySQL的启动状态
3. 开机启动
1 | systemctl enable mysqld |
4. 修改root默认密码
mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:
1 | grep 'temporary password' /var/log/mysqld.log |
1 | mysql -uroot -p |
或者
1 | mysql> set password for 'root'@'localhost'=password('MyNewPass4!'); |
注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误,如下图所示:
通过msyql环境变量可以查看密码策略的相关信息:
1 | mysql> show variables like '%password%'; |
validate_password_policy:密码策略,默认为MEDIUM策略 validate_password_dictionary_file:密码策略文件,策略为STRONG才需要 validate_password_length:密码最少长度 validate_password_mixed_case_count:大小写字符长度,至少1个 validate_password_number_count :数字至少1个 validate_password_special_char_count:特殊字符至少1个 _上述参数是默认策略MEDIUM的密码检查规则。
共有以下几种密码策略:
策略 | 检查规则 |
---|---|
0 or LOW | Length |
1 or MEDIUM | Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG | Length; numeric, lowercase/uppercase, and special characters; dictionary file |
MySQL官网密码策略详细说明:http://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy |
修改密码策略
在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略
1 | # 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件 |
如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:
1 | validate_password = off |
重新启动mysql服务使配置生效:
1 | systemctl restart mysqld |
5. 添加远程登录用户
默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:
1 | mysql> GRANT ALL PRIVILEGES ON *.* TO 'sunhaoran'@'%' IDENTIFIED BY 'Sun@123456' WITH GRANT OPTION; |
6. 配置默认编码为 utf8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
1 | [mysqld] |
重新启动mysql服务,查看数据库默认编码如下所示:
1 | show variables like 'character%'; |
默认配置文件路径: 配置文件:/etc/my.cnf 日志文件:/var/log//var/log/mysqld.log 服务启动脚本:/usr/lib/systemd/system/mysqld.service socket文件:/var/run/mysqld/mysqld.pid
mysql 基本操作
客户端访问
1 | mysql -u root -p 回车 |