版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/achenyuan/article/details/86690872
阿里云centos环境之mysql5.7(十七)
文章目录
前言
以前写过安装mysql5.6,我一直以为是mysql5.7,直到安装zabbix时,才发现是5.6版本,这两个版本的二进制安装方式还是有区别的。
目的:一来,记录mysq5.7的安装方式,二来,在安装zabbix4.0版本时时需要依赖mysql5.7.
步骤
卸载mariadb
如果有mariadb,则卸载它: yum -y remove mariadb*,删除数据库文件: rm -rf /var/lib/mysql/*
卸载mysql
检查是否安装NySQL,如果有mysql则卸载它。
rpm -qa |grep mysql
yum remove mysql*
yum包安装
CentOS 的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件
rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
安装mysql5.7
yum install -y mysql-server
#启动
systemctl start mysqld
#开机启动
systemctl enable mysqld
配置
包括重置root密码,开放外网访问能力
- 获取安装时的临时密码:grep “temporary password” /var/log/mysqld.log
- 登陆:mysql -u root -p,输入上面的临时密码
- 登录成功后修改密码:set password=password(“yourpassword”); #5.7加强了安全设置,登陆成功后必需重置密码不然不能操作,密码要求:大小写字线,数字,和特殊字符。比如:Root123!@#
- 降低密码验证强度等级:set global validate_password_policy=LOW;
查询:select @@validate_password_policy;
- 设置密码长度为至少4个长度(默认8位):set global validate_password_length=4;
查询:select @@validate_password_length;
- 开启远程控制:update mysql.user set host=’%’ where user=‘root’;
- 更新root用户密码为root:set password=password(“root”);
- 更新:flush privileges;
- 配置默认编码为utf8:
vi /etc/my.cnf:
#添加
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
- 退出mysql命令行:exit;
- 重启mysql: systemctl restart mysqld
其他默认配置文件路径
数据文件:/var/lib/mysql
配置文件:/etc/my.cnf
日志文件:/var/log//var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
二进制安装方式
卸载上面的mysql
systemctl stop mysqld
yum remove mysql*
yum remove mariadb*
下载并安装启动
添加用户组和用户
#添加用户组
groupadd mysql
#添加用户mysql 到用户组mysql
useradd -g mysql -s /sbin/nologin mysql
#给mysql设置密码mysql
passwd mysql
进入/usr/local目录
cd /usr/local
#下载
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
# 解压
tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
#删除安装包
rm -rf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
# 重命名
mv mysql-5.7.23-linux-glibc2.12-x86_64 mysql
#修改mysql目录权限
chown -R mysql:mysql /usr/local/mysql
初始化数据库
# 进入mysql
cd mysql/
# 创建目录data
mkdir data
# 初始化数据库
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
编辑vi /etc/my.cnf
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
pid_file = /var/run/mysqld/mysqld.pid
datadir = /usr/local/mysql/data
character_set_server=utf8
init_connect='SET NAMES utf8'
log-error = /var/log/mysqld.log
添加mysql为系统服务
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
#修改启动脚本
vi /etc/init.d/mysqld
#修改项:
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/
#加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了
export PATH=$PATH:/usr/local/mysql/bin
#使文件生效
source /etc/profile
# 启动mysql
service mysqld start
#关闭mysql
service mysqld stop
#查看运行状态
service mysqld status
# sql基本语句
SHOW DATABASES; //查看当前所有数据库
CREATE DATABASE 数据库名; //创建数据库
USE 数据库名; //选择数据库
SOURCE SQL文件路径; //导入数据
GRANT ALL PRIVILEGES ON 数据库名.* TO 用户名@"%" IDENTIFIED BY '密码' WITH GRANT OPTION; //创建一个远程用户使他有某个数据库的所有权限
默认为root用户设置了密码,查看输出
A temporary password is generated for root@localhost: !eu_RLWVk8kB
修改root密码和开启远程访问如上
总结
相对来说,二进制方式安装比较麻烦,推荐包安装方式。