CentOS7.x的mysql8.0.21离线安装

文章内有资源包,mysql8-linux.zip,是一个包涵配置文件的mysql安装包,之前用过mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar,mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar安装过,不过在初始化的时候会报错,因为我加了配置文件导致初始化不起来,没有找到原因,后来找到了这个,亲测可用

a. 解压该压缩包

unzip mysql8-linux.zip

b. 进入解压目录并解压mysql-8.0.21-el7-x86_64.tar.gz文件

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

c. 将解压后的文件夹./mysql-8.0.21-el7-x86_64重命名并复制或者移动到/usr/local/mysql下

    cp mysql-8.0.21-el7-x86_64 /usr/local/mysql -r
    #或
    mv mysql-8.0.21-el7-x86_64 /usr/local/mysql

d. 创建mysql用户并将/usr/local/mysql 文件夹授权

#1.进入工作目录
cd /usr/local
#2.新增mysql组
groupadd mysql
#3.新增mysql用户并设置组为mysql
useradd -r -g mysql mysql
#4.进入mysql下并授权所有文件
cd mysql/ && chown -R mysql:mysql ./

e.创建mysql所需日志及数据目录并给该目录赋权

#创建mysql日志和数据目录到/mysql/下面,我的服务器在该目录下挂载的硬盘,
#所以放在这,你们可以自己指定存放位置,但是要注意修改配置文件中对应目录
mkdir -p /mysql/{data,bin-log,slow_log,error_log}
 
#赋权 将/mysql目录赋权给mysql组的mysql用户
chown -R mysql:mysql /mysql

f.将启动文件放入自启动目录

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

g.将压缩包中的my.cnf拷贝到/etc/下面并编辑修改缓存大小端口号慢查询binlog等,下面是我的

[mysqld]
#查询模式,添加该行可支持分组查询时查询多列 (select c1,c2,c3,count(1) total from tables group by c1)
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
port=3306
bind-address=0.0.0.0
#基础工作目录
basedir=/usr/local/mysql 
#数据存放目录
datadir=/mysql/data
#错误日志文件,初始化时,生成的root用户的密码就在这
log-error=/mysql/error_log/mysql_error.log
#开启慢查询功能
slow_query_log=1 
#慢查询SQL日志
slow_query_log_file=/mysql/slow_log/mysql_slow_query.log
#慢查询超时时间,如果超过5秒认为是慢查询,并被记录到slow_query_log_file中
long_query_time=5 
server-id=1
skip-external-locking
skip-name-resolve
#binlog日志,注意,这个地方的bin-log不是文件夹,而是binLog日志文件
log_bin=/mysql/bin-log/bin-log
#binlog格式化方式
binlog_format=mixed 
#默认存储引擎
default_storage_engine=InnoDB 
innodb_autoinc_lock_mode=2
#客户端最大连接数
max_connections=4000 
#用户最大连接数
max_user_connections=1000 
wait_timeout=200 
general_log=OFF
general_log_file=/var/lib/mysql/general.log
#开启事件功能定时任务等
event_scheduler=ON
default-time_zone='+8:00'
#innodb存储引擎默认缓冲池大小(推荐服务器内存的一半)
innodb_buffer_pool_size=2G 
innodb_buffer_pool_instances=4
read_buffer_size=32M
read_rnd_buffer_size=32M
join_buffer_size=32M
sort_buffer_size=64M
#读的IO线程数
innodb_read_io_threads=16 
#写的IO线程数
innodb_write_io_threads=16 
table_open_cache=4000
#不区分大小写
lower_case_table_names=1

二. 初始化mysql

#初始化
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/mysql/data

三. 查询密码

在步骤三初始化后,需要到日志目录下去找启动日志,比如:

cat /mysql/error_log/mysql_error.log

在输出的日志中就可以找到初始化密码,红色框框选的就是密码了

四. 启动mysql并登陆测试

#1. 先刷新daemon,不然会提示找不到mysql服务
systemctl daemon-reload
#2. 启动mysql
systemctl start mysqld
#3. 查看mysql状态
systemctl status mysqld
#4. 检查mysql是否被设置开机自启
chkconfig --list
#5. 设置开启自启
chkconfig --add mysqld
#6. 再次验证是否被设置开机自启
chkconfig --list 
#7. 输入第三步中查询到的密码并登陆
/usr/local/mysql/bin/mysql -uroot -p
#7.1 或者创建一个软连接后,直接使用mysql
ln -s /usr/local/mysql/bin/mysql /mysql/bin

五. 修改密码并设置客户端访问mysql服务的权限

在第四步登陆root用户之后,执行下面操作:

#1. 设置root的密码为:password,你也可以设置其他的,
alter user 'root'@'localhost' identified by 'password'; 
#2. 选择当前操作数据库为mysql
use mysql;
#3. 查看配置文件内配置
show variables;
#4. 查看用户列表
select host,user from user;
#5. 设置访问权限为所有客户端主机均可访问,即更新root用户的host字段为'%'
#当然这样做不是太安全,因为所有和这台服务器网络相通的服务器都可以访问到这个mysql服务,可以从防火墙或者把host设置为指定的ip地址来防止非法访问
update user set host='%' where user='root';
#6. 退出mysql客户端
exit;
#7. 重启mysql[重要]
systemctl restart mysqld

创建远程连接用户

/mysql/bin -u root -p
输入修改后的密码

#创建数据库用户testuser,并授予远程连接权限。
create user 'testuser'@'%' identified by 'testuser123'; 

#为testuser用户授权数据库所有权限。
grant all privileges on *.* to 'testuser'@'%'; 

#刷新权限
flush privileges;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值