linux安装配置mysql的方法主要有yum安装和配置安装两种,由于yum安装比较简单,但是会将文件分散到不同的目录结构下面,配置起来比较麻烦,这里主要研究一下配置安装mysql的方法
1、环境说明
centos 7.9
mysql 5.7.37
2、环境检查
注:centos7系统自带mariadb数据库,先卸载再安装mysql,防止有冲突。 查询是否有安装的mariadb文件,执行命令,如下:
[root@localhost ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
若存在,则执行如下命令卸载:
[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
[root@localhost ~]# rpm -qa | grep mariadb
卸载完成后再用rpm -qa命令查看,已经没有自带的mariadb了
3、资源下载
1、进入官网,寻找对应的mysql版本
地址如下:MySQL :: Begin Your Download 右键获取下载链接(其他版本的可以自行寻找,只需要获取到下载链接即可)
2、在linux指定目录下用wget命令下载,如果没有wget命令,可以使用yum install -y wget命令安装wget命令
[root@localhost tools]# wget https://dev.mysql.com/get/archives/mysql-5.7/mysql-5.7.37-el7-x86_64.tar.gz
3、解压到指定的路径下面
我这里自己安装的文件都是安装在/opt/apps/路径下面,所以用-C参数指定的路径是/opt/apps
[root@localhost tools]# tar -xvf mysql-5.7.37-el7-x86_64.tar.gz -C /opt/apps/
等待解压完成,cd到解压目录
[root@localhost mysql-5.7.37-el7-x86_64]# cd /opt/apps/mysql-5.7.37-el7-x86_64/
其内部结构如下
4、配置mysql
1、创建数据文件夹
[root@localhost mysql-5.7.37-el7-x86_64]# mkdir data
2、创建mysql组、用户 并将mysql 目录授权
- 先检查是否有mysql组和用户
[root@localhost mysql-5.7.37-el7-x86_64]# groups mysql
groups: mysql: no such user
- 没有则添加组和用户
[root@localhost mysql-5.7.37-el7-x86_64]# groupadd mysql
[root@localhost mysql-5.7.37-el7-x86_64]# useradd -r -g mysql mysql
[root@localhost mysql-5.7.37-el7-x86_64]# groups mysql
mysql : mysql
- 改变目录的拥有者
[root@localhost mysql-5.7.37-el7-x86_64]# cd /opt/apps/mysql-5.7.37-el7-x86_64/
[root@localhost mysql-5.7.37-el7-x86_64]# chown -R mysql .
[root@localhost mysql-5.7.37-el7-x86_64]# chgrp -R mysql .
[root@localhost mysql-5.7.37-el7-x86_64]# ll
total 272
drwxr-xr-x. 2 mysql mysql 4096 Jun 18 22:56 bin
drwxr-xr-x. 2 mysql mysql 6 Jun 19 02:10 data
drwxr-xr-x. 2 mysql mysql 55 Jun 18 22:56 docs
drwxr-xr-x. 3 mysql mysql 4096 Jun 18 22:55 include
drwxr-xr-x. 5 mysql mysql 230 Jun 18 22:56 lib
-rw-r--r--. 1 mysql mysql 259253 Nov 29 2021 LICENSE
drwxr-xr-x. 4 mysql mysql 30 Jun 18 22:56 man
-rw-r--r--. 1 mysql mysql 566 Nov 29 2021 README
drwxr-xr-x. 28 mysql mysql 4096 Jun 18 22:56 share
drwxr-xr-x. 2 mysql mysql 90 Jun 18 22:56 support-files
5、Mysql初始化并加入开机启动
1、执行初始化命令,如图,红框1是初始化的命令,红框2是初始化完成后生成的默认密码(保留记住,稍后会用)
命令如下(路径修改为自己的路径):
bin/mysqld --initialize --user=mysql --basedir=/opt/apps/mysql-5.7.37-el7-x86_64 --datadir=/opt/apps/mysql-5.7.37-el7-x86_64/data
2、创建并修改配置文件
- 在/etc目录下创建my.cnf配置文件
vim /etc/my.cnf
- 配置文件内容如下(basedir和datadir根据实际目录填写):
[mysqld]
server-id= 1
port= 3306
basedir=/opt/apps/mysql-5.7.37-el7-x86_64
datadir=/opt/apps/mysql-5.7.37-el7-x86_64/data
transaction_isolation= READ-COMMITTED
character-set-server= utf8mb4
collation-server= utf8mb4_general_ci
init_connect=‘SET NAMES utf8mb4‘
lower_case_table_names= 1
max_connections= 1000
sql_mode="STRICT_TRANS_TABLES,IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
log-output=FILE
general-log=0
general_log_file="slow.log"
slow-query-log=1
long_query_time=2.5
log_bin=ON
log_bin_trust_function_creators=1
innodb_buffer_pool_size=5120M # 根据系统内存可用数进行配置,最大不超过可用数的80%
3、设置自动启动
- 依次执行如下命令
cd /opt/apps/mysql-5.7.37-el7-x86_64/support-files
cp mysql.server /etc/init.d/mysql
#赋予mysql 可执行权限
chmod+x /etc/init.d/mysql
#添加mysql服务
chkconfig --add mysql
#查看自启动服务列表
chkconfig --list
#如果看到mysql的服务,并且3,4,5都是on的话则成功
#如果是off,则键入chkconfig --level 345 mysql on
执行结果如下:
- 修改复制的mysql文件,将将basedir 和 datadir 分别指向正确的路径
vim /etc/init.d/mysql
6、启动mysql并修改默认密码
1、创建mysql的执行快捷链接
ln -s /opt/apps/mysql-5.7.37-el7-x86_64/bin/mysql /usr/bin
2、启动mysql服务
service mysql start
3、执行登录命令,并输入之前保存的密码
mysql-u root -p
如下表示登录成功
4、修改默认密码,并容许root用户远程登录数据库
# 修改默认密码
set password=password('root');
# 允许远程登陆
grant all privileges on *.* to'root'@'%' identified by 'root';
flush privileges;
配置文成后,退出登录,就可以用新的密码登录了
用naviat远程连接测试如下: