CentOS7离线部署mysql5.7
1. 下载Mysql
https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
2. 解压
放在home目录下 目录可自己更改
tar -xzvf /home/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
解压后更改文件名为mysql
mv mysql-5.7.29-linux-glibc2.12-x86_64 mysql
3. 赋予权限&初始化文件
(1). 赋予权限
chown -R root mysql/
(2). 初始化my.cnf文件
vi /etc/my.cnf
复制以下内容:
[mysqld]
user=root
basedir=/home/mysql
datadir=/home/mysql/data
log-error=/home/mysql/error.log
pid-file=/home/mysql/mysql.pid
character_set_server=utf8
init_connect='SET NAMES utf8'
lower_case_table_names=1
(3). 初始化error.log文件 防止没有权限
vi /home/mysql/error.log
:wq
chmod 777 error.log
chown root error.log
(4). 初始化mysql.pid文件 防止没有权限
vi /home/mysql/mysql.pid
:wq
chmod 777 mysql.pid
chown root mysql.pid
4. 初始化数据库
初始化数据库 注意路径
/home/mysql/bin/mysqld --initialize --user=root --basedir=/home/mysql --datadir=/home/mysql/data
初始化完成后,在log文件error.log文件,里面记录了root用户的随机密码。
5. 启动数据库
/home/mysql/support-files/mysql.server start
修改密码
# 系统默认会查找/usr/bin下的命令;建立一个链接文件
ln -s /home/mysql/bin/mysql /usr/bin
# 登陆mysql的root用户
mysql -uroot -p
# 输入生成的随机密码
# 修改root用户密码为123456
set password for root@localhost=password('123456');
设置开机自启动服务:
# 复制启动脚本到资源目录
cp /home/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
# 增加mysqld服务控制脚本执行权限
chmod +x /etc/rc.d/init.d/mysqld
# 将mysqld服务加入到系统服务
chkconfig --add mysqld
# 检查mysqld服务是否已经生效
chkconfig --list mysqld
# 启动mysql
service mysqld start
service mysqld start/stop/restart
设置允许远程连接
# 登录mysql
mysql -u root -p
use mysql
select user,host from user;
# 修改root用户的host字段
update user set host='%' where user='root';
# 使本次修改立即生效
flush privileges;
注意防火墙
# 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld
# 开机自启
systemctl enable firewalld.service
# 禁用开机自启
systemctl disable firewalld.service
# 开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 关闭3306端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent
# 命令含义
# --zone #作用域
# --add-port=80/tcp 添加端口,格式为:端口/通讯协议
# --permanent 永久生效,没有此参数重启后失效
# 查看防火墙规则
firewall-cmd --list-all
# 加载规则使之立即生效
firewall-cmd --load