Centos7设置免安装版mysql5.7并设置防火墙及远程连接

以下所有操作均是在root账号下完成。

一、Centos7.8系统自带mariadb

查看系统自带的Mariadb

[root@localhost~]# rpm -qa|grep mariadb
mariadb-libs-5.5.56-2.el7.centos.x86_64

卸载系统自带的Mariadb
[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.centos.x86_64

二、检查mysql是否存在

[root@localhost ~]# rpm -qa | grep mysql
[root@localhost~]#

三、查看mysql用户和组是否存在(非必需,但有了后期可以进行安全设置吧)

不存在的话直接创建就可以了。
创建mysql用户组

[root@localhost~]# groupadd mysql

创建一个用户名为mysql的用户,并加入mysql用户组

[root@localhost~]# useradd -g mysql mysql

修改mysql用户的密码

[root@localhost~]# passwd mysql
Changing password for user mysql.
New password: 
BAD PASSWORD: ……
Retype new password: 
passwd: all authentication tokens updated successfully.

四、下载mysql的免安装包

大家可以到清华源中下载,速度很快,不想用最新的,所以选的mysql5.7.36。

https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/

我下的.tar.gz格式的。

五、上传该文件到centos7虚拟机中,并创建相应文件夹

上传方式有很多,如xmanager,不赘述。上传完成后解压

tar  -zxvf  mysql-5.7.36-el7-x86_64.tar.gz

重命名解压后的文件夹

mv mysql-5.7.36-el7-x86_64/ mysql57/

在其中创建两个文件夹,放数据文件和日志文件

cd mysql57/
mkdir data logs

切换到上一层目录

cd ..

将mysql57移动到/usr/local目录下

mv mysql57 /usr/local/

六、更改mysql57所属的用户和组

cd /usr/local
chown -R mysql:mysql mysql57

利用ll命令查看mysql57的用户和组是否全为mysql

七、编辑mysql配置文件my.cnf

vi /etc/my.cnf

内容如下:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
 
[mysqld]
# 设置3306端口
port = 3306 
# 设置绑定IP
bind-address=0.0.0.0
# 设置mysql的安装目录
basedir=/usr/local/mysql57
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql57/data
# 日志的相关配置
log-error=/usr/local/mysql57/logs/error.log
# 不建议开日志,所有的操作都记录文件太大
# general-log=1
# log-output=FILE
# general-log-file=/usr/local/mysql57/logs/mysql.log
slow_query_log=1
long_query_time=3
slow_query_log_file=/usr/local/mysql57/logs/slowquery.log
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB 
lower_case_table_names=1
max_allowed_packet=16M

八、安装mysql

cd /usr/local/mysql57/bin
[root@localhost bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql57 --datadir=/usr/local/mysql57/data

如果有报错请检查,看错误代码,主要是路径问题或权限问题

九、设置开机启动

创建软链接

ln -s /usr/local/mysql57/bin/mysqld /usr/bin/mysqld
ln -s /usr/local/mysql57/bin/mysqld /usr/sbin/mysqld 
ln -s /usr/local/mysql57/bin/mysql /usr/bin/mysql
ln -s /usr/local/mysql57/bin/mysql /usr/sbin/mysql

添加开机启动服务

vi /etc/systemd/system/mysqld.service

为该文件添加以下内容:

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/usr/local/mysql57/mysqld.pid
# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0
# Execute pre and post scripts as root
PermissionsStartOnly=true
# Start main service
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/usr/local/mysql57/mysqld.pid $MYSQLD_OPTS
# Sets open_files_limit
LimitNOFILE = 5000
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=false

上面的配置好像还不能开机启动

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

赋予该文件执行权限

chmod +x /etc/init.d/mysql
chkconfig --add mysql
chkconfig --list

如果在2345级别是on应该就可以了,如果不行的话再加下面一条

chkconfig --level 2345 mysql on

十、启动mysql服务并检查

systemctl start mysqld
systemctl status mysqld

看里面mysqld.service服务是active(running)的就可以了
一般没问题,如果启动失败有可能是启动了selinux,关闭即可

vi /etc/selinux/config

设置SELINUX=disabled

十一、查看mysql用户root的密码并重置

grep password /usr/local/mysql57/logs/error.log

会有下面的提示,但该密码为临时密码,需要修改。

2022-04-28T13:48:32.336948Z 1 [Note] A temporary password is generated for root@localhost: 8ie,p,b6jRBy

修改方法,修改为了123456

/usr/local/mysql57/bin/mysqladmin -uroot -p8ie,p,b6jRBy password 123456

十二、设置远程登录

mysql -uroot -p123456
use mysql
update user set host = '%' where user ='root';
flush privileges
exit	
退出mysql
systemctl stop mysqld
systemctl start mysqld

十三、设置防火墙

如果远程使用Navicat连接mysql报10060错误,应该是防火墙的问题或网络问题。

firewall-cmd --permanent --add-port=3306/tcp
systemctl restart firewalld

如果嫌麻烦,直接关闭防火墙吧。

systemctl stop firewalld

你可能感兴趣的:(mysql,centos7,mysql,centos)