Mysql 5.7 安装配置
Mysql 是一种开源的关系型数据库,适合中小型系统使用,特点是体积小、速度快、总体拥有成本低。
1. 下载开源包
本文档使用mysql-5.7.16-1.el7,各组件在内网192.168.1.222 系统CentOS7中安装,仅供参考
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
2. 安装组件
1 卸载自带mysql 版本
1.查看已安装的MariaDB相关rpm包。
rpm -qa | grep mariadb
2. 删除对应版本
rpm -e --nodeps 版本。。。(上一步查出来的)
2. 安装Mysql
tar -xvfmysql-5.7.16-1.el7.x86_64.rpm-bundle.tar
使用rpm包安装MySQL
rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.16-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.16-1.el7.x86_64.rpm
如果执行最后一步有一些错误
执行下列脚本
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm
在执行
rpm -ivhmysql-community-server-5.7.16-1.el7.x86_64.rpm
安装成功后
Mysql 配置文件生成/etc/my.cnf, 配置免密码登录
vim /etc/my.cnf
在【mysqld】配置块 加上
skip-grant-tables =true
这样就可以登录了
service mysqld start 或 systemctl startmysqld.service
后续记录mysql 权限和密码配置
不设置也可以通过下列方式得到初始化密码
grep 'temporary password' /var/log/mysqld.log
但需要配置/etc/my.cnf
validate_password = off
2. 用户和权限配置
上一节 已记录免登录配置,这节就是通过上述免登陆配置相关配置
1.设置root 管理员 临时密码
免密码登录MySQL
mysql
use mysql;
修改root 密码
UPDATE user SET authentication_string = password('newpass') WHERE host = 'localhost'AND user = 'root';如果不行的话
使用:mysql> SET PASSWORD FOR 'root'@'localhost' =PASSWORD('newpass');
2. 设置root 登录密码
修改配置文件/etc/my.cnf删除此前新增那一行skip-grant-tables,并重启MySQL
systemctl restart mysqld.service
mysql -u root -p
根据提示输入设置好的密码
MySQL会强制要求重新修改密码,且不能为简单规则密码
修改规则
set global validate_password_policy=0; -- 这样密码只有长度限制了
select @@validate_password_length;
如果想修改长度可以
set global validate_password_length=4; -- 最小长度为4
3. 设置远程登录用户权限
基本语法:
grant 权限 on 数据库对象 to 用户
1. grant select, insert on testdb.* to common_user@'%';
给用户common_user 赋予数据库testdb select,insert 权限(% 代表任何地址都可以连接)
2.
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY 'test'
WITH GRANT OPTION; --全部权限
后面可以根据实际情况添加连接用户和权限......
3.flush privileges; --更新权限
现在可以通过mysql 客户端连接mysql 数据库了
如果远程无法连接:1.查看并关闭防火墙
2.服务器后台->安全组规则->配置规则->克隆->协议类型->mysql 就可以了
3.常用参数配置
vim /etc/my.cnf --修改mysql 配置文件
内容如下
1.修改 数据库最大连接数默认100 -- 不存在直接添加
max_connections=1000
重启mysql 可能出行最大连接数214
show variables like '%max_connections%';
更改 MySQL 在 Linux 的最大文件描述符限制,
编辑 /usr/lib/systemd/system/mysqld.service 文件,在文件最后添加
LimitNOFILE=65535
LimitNPROC=65535
重启可查看 showvariables like "max_connections";
2. 超时时间:mysql 默认8个小时会自动拒绝客户端连接
在my.cnf 中添加(一年)
wait_timeout=31536000
interactive_timeout=31536000
3. 字符配置(非必须)
vim /etc/my.cnf
在【mysql】选项组中加入:default-character-set=utf8
在【mysqld】选项组中加入:character_set_server=utf8
4. centos7 自动备份
vi/usr/sbin/bakmysql -- 创建并编辑文件
db_user="root"
db_passwd="fjw2017#"
db_name_erp="erp"
db_name_erp_order="erp-order"
# the directory for story your backup file.you shall change this dir
backup_dir="/usr/software/backup/erp"
# date format for backup file (dd-mm-yyyy)
time="$(date +"%Y%m%d%H%M%S")"
mysqldump -u$db_user -p$db_passwd$db_name >"$backup_dir/$db_name_erp"_"$time.sql"
mysqldump -u$db_user -p$db_passwd $db_name >"$backup_dir/$db_name_erp_order"_"$time.sql"
添加定时任务
crontab -e
添加 -- 每天11点备份数据库
00 23 * * *./usr/sbin/bakmysql
这章只是安装了单节点mysql 数据库,后续将记录mysql 主从配置