Centos9离线安装mysql
作者:admin 来源:原创 2024/1/22 10:35:57

    安装前首先卸载已安装的mysql版本。

    1、查找已安装的mysql软件:rpm -qa | grep mysql

    

    2、逐一卸载:rpm -e PackageName

    3、删除mysql数据库目录:rm -rf /var/lib/mysql/*

    4、删除配置文件:rm -rf /etc/my.cnf

一、安装

    1、下载

    https://dev.mysql.com/downloads/mysql/

    

    下载RPM Bundle

    

    2、解压到本地文件夹

    复制以下5个文件上传到centos9

    

    

     3、 执行安装命令(以root角色安装):

rpm -ivh mysql-community-common-8.3.0-1.el9.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.3.0-1.el9.x86_64.rpm
rpm -ivh mysql-community-libs-8.3.0-1.el9.x86_64.rpm
rpm -ivh mysql-community-client-8.3.0-1.el9.x86_64.rpm
rpm -ivh mysql-community-server-8.3.0-1.el9.x86_64.rpm --nodeps --force

    

    问题1:在安装mysql-community-server 报错:

    

    解决的方法:在rpm 语句后面加上--nodeps --force

    问题2:在安装mysql-community-libs 报错
    error: Failed dependencies:
    mariadb-libs is obsoleted by mysql-community-libs
    解决办法:卸载之前的mysql-libs

yum remove -y mysql-libs
   #再次安装
 rpm -ivh mysql-community-libs..
#安装完毕,查看版本
mysql --version
     

    4、修改配置文件,配置大小写不敏感(必须在启动服务前修改,若启动后再增加配置则无法成功,只有rm -rf /var/lib/mysql 删除所有数据重新设置

    

    nano /etc/my.cnf
    lower_case_table_names=1
    max_connections = 2000
    max_connect_errors = 1000
    5、启动服务
    #赋予权限,一直无法启动显示启动中,赋予权限即可
    chmod -R 777 /var/lib/mysql
    #启动服务或查看服务信息
    systemctl start mysqld
    systemctl status mysqld

    
二、配置mySQL

     1、命令初始化

mysqld --initialize --user=mysql --lower_case_table_names=1
    2、执行完成后会在该文件中生成mysql的临时密码:

     cat /var/log/mysqld.log | grep password

    

    问题1:启动失败,显示地址已在使用,也就是3306端口被占用

    

    查看占用3306的程序:sudo netstat -antup|grep 3306

    

    解决方法:修改端口为3307
    sudo nano /etc/my.cnf
    在[mysqld]节点后面增加port=3307
    

    ctrl+字母o保存,再ctrl+字母x退出。    
    并再次执行:chmod -R 777 /var/lib/mysql
    按提示执行:journalctl -xe
    

    发现提示执行以下两句命令:【修改端口号时要执行以下】
     ausearch -c 'mysqld' --raw | audit2allow -M my-mysqld
     semodule -X 300 -i my-mysqld.pp
    根据提示又执行了:semodule -i my-mysqld.pp
    

     最后执行启动mysqld服务命令!   

    

    总结:

    配置文件/etc/my.cnf全部内容为:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.1/en/server-configuration-defaults.html

[mysqld]
port=3307#需要执行其他语句
user=root
lower_case_table_names=1#忽略大小写
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove the leading "# " to disable binary logging
# Binary logging captures changes between backups and is enabled by
# default. It's default setting is log_bin=binlog
# disable_log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
#
# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.1/en/server-system-variables.html#sysvar_default_a                                                                                                                                                      uthentication_plugin
# default-authentication-plugin=mysql_native_password
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_connections = 2000
max_connect_errors = 1000
需要执行赋予权限:chmod -R 777 /var/lib/mysql
//重新挂载服务
sudo systemctl daemon-reload
//启动服务
sudo systemctl start mysqld
//停止
sudo systemctl stop mysqld
//重启
systemctl restart mysqld
//查看服务状态
sudo systemctl status mysqld
//设置开机启动
sudo systemctl enable mysqld
//查看服务是否是自启动
systemctl is-enabled mysqld

三、登录mysql

mysql -u root -p
     

 修改密码:记得语句后得加逗号;

ALTER USER USER() IDENTIFIED BY 'xxxxxx';
flush privileges;
    

     查看用户列表:

    

    设置允许远程连接:

use mysql;
update user set host='%' where user='root';
select host,user from user;
    执行完毕需要重启mysql服务。
systemctl restart mysqld
    

    设置防火墙,图示是3306端口

    

    

 四、其他配置
    (1)设置最大连接数量,避免超过最大连接数量

sudo nano /etc/my.cnf
     添加 max_connections = 2000(数量可自定义) 保存后重启服务:systemctl restart mysqld

    

    (2)忽略大小写

    需要备份数据库,清空数据,一切重新开始

rm -rf /var/lib/mysql #清空数据
     # 添加配置,大小写不敏感
    lower_case_table_names=1
    

     此时重启mysqld服务提示权限不够,按以上问题2的方法解决。

    
    启动服务后,按以上方法,(1查找临时密码,(2登录mysql,(3修改密码,(4再设置允许远程登录等。
    最后重启服务!
(3)设置最大错误次数
    max_connect_errors = 1000

    参考以上设置方法

称      呼:
联系方式:
您的评论:
技术支持:l.w.dong@qq.com www.luweidong.cn
广州市   wx:lwdred
Copyright © 2014 三味书屋 All Rights Reserved
技术支持:l.w.dong@qq.com  sitemap xml  sitemap html

粤公网安备44010602011869号

粤ICP备13031080号-1