centos8离线安装mysql(也适合华为欧拉系统)
作者:admin 来源:原创 2024/1/29 9:37:19

    一、安装:

    1、下载

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

    

    Select Version:8.1.0 Innovation

    Select Operating System:Red Hat Enterprise Linux/Oracle Linux

    Select OS Version:Red Hat Enterprise Liunx 8/Oracle Linux 8(x86,64-bit)    

    下载:RPM Bundle

    

    2、解压到本地文件夹

    

    复制以下5个文件上传到centos8:

    

   3、 执行安装命令:

rpm -ivh mysql-community-common-8.1.0-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.1.0-1.el8.x86_64.rpm
rpm -ivh mysql-community-libs-8.1.0-1.el8.x86_64.rpm
rpm -ivh mysql-community-client-8.1.0-1.el8.x86_64.rpm
rpm -ivh mysql-community-server-8.1.0-1.el8.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

    

    建议在启动前修改配置文件,增加配置大小写不敏感等配置。一旦在启动后再增加此配置,将无法启动。

case_table_names=1
max_connections = 2000
max_connect_errors = 1000

    只有rm -rf /var/lib/mysql 删除所有数据重新设置。

   4、 赋予权限及启动服务:

   执行赋予权限:chmod -R 777 /var/lib/mysql

   sudo systemctl start 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

    

    配置文件中增加user=root

    

    ctrl+字母o保存,再ctrl+字母x退出。

    尝试启动,按提示执行:journalctl -xe

    

    发现提示执行以下两句命令:

     ausearch -c 'mysqld' --raw | audit2allow -M my-mysqld

     semodule -X 300 -i my-mysqld.pp

    根据提示又执行了:semodule -i my-mysqld.pp

    

    最后执行启动mysqld服务命令,终于神奇得好了!

    

    问题2:提示权限不够。

    

    解决方法:修改目录权限

    执行:chmod -R 777 /var/lib/mysql

    总结:

    配置文件/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#忽略大小写
max_connections = 2000
max_connect_errors = 1000
#
# 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
    需要执行赋予权限: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

    

    四、其他配置

    (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)再设置允许远程登录等。

    最后重启服务!

称      呼:
联系方式:
您的评论:
技术支持: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