CentOS 7采用rpm方式离线安装MySQL 8版本数据库【测试成功】

艺帆风顺 发布于 2025-04-03 23 次阅读


一、需求背景

在CentOS 7下,通过离线rpm包的方式快速安装MySQL 8版本数据库。

    [root@bogon ~]# cat /etc/redhat-releaseCentOS Linux release 7.6.1810 (Core)

    二、下载安装包

    下载完成后,应该包含以下几个包文件:

      mysql-community-client-8.0.36-1.el7.x86_64.rpmmysql-community-client-plugins-8.0.36-1.el7.x86_64.rpmmysql-community-common-8.0.36-1.el7.x86_64.rpmmysql-community-devel-8.0.36-1.el7.x86_64.rpmmysql-community-icu-data-files-8.0.36-1.el7.x86_64.rpmmysql-community-libs-8.0.36-1.el7.x86_64.rpmmysql-community-server-8.0.36-1.el7.x86_64.rpm

      三、执行安装

      按照以下顺序执行安装:

         rpm -ivh mysql-community-common-8.0.36-1.el7.x86_64.rpm rpm -ivh mysql-community-client-plugins-8.0.36-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-8.0.36-1.el7.x86_64.rpm rpm -ivh mysql-community-client-8.0.36-1.el7.x86_64.rpm rpm -ivh mysql-community-icu-data-files-8.0.36-1.el7.x86_64.rpm rpm -ivh mysql-community-server-8.0.36-1.el7.x86_64.rpm

        安装完毕后,先不要启动,先修改my.cnf配置文件,内容如下

          datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock
          log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid[mysqld]server_id = 1port = 3306character-set-server = utf8collation-server = utf8_general_cilower_case_table_names = 1transaction-isolation = READ-COMMITTEDdefault-time_zone = '+8:00'log_timestamps = SYSTEM
          log_bin=mysql-binexpire_logs_days=30binlog_format=ROW###############################innodb_buffer_pool_size = 8Ginnodb_log_file_size=128Minnodb_log_files_in_group=4innodb_log_buffer_size=16Minnodb_write_io_threads = 8innodb_read_io_threads = 8innodb_max_dirty_pages_pct = 90innodb_lock_wait_timeout = 120innodb-file-per-table=1auto_increment_increment=1auto_increment_offset=1connect_timeout=10group_concat_max_len=1024innodb_thread_concurrency=0innodb_thread_sleep_delay=10000innodb_write_io_threads=12interactive_timeout=28800lock_wait_timeout=31536000long_query_time=10.000000low_priority_updates=OFFmax_allowed_packet=1Gmax_connect_errors=999999999max_connections=1600max_length_for_sort_data=1024max_prepared_stmt_count=16382max_user_connections=0net_read_timeout=30net_retry_count=10net_write_timeout=60ngram_token_size=2open_files_limit=102400performance_schema=OFFquery_alloc_block_size=8192query_prealloc_size=8192slow_launch_time=2table_definition_cache=768table_open_cache=512table_open_cache_instances=16thread_cache_size=512tmp_table_size=1073741824wait_timeout=2147483interactive_timeout=3153600explicit_defaults_for_timestamp = truelog-bin-trust-function-creators = 1

          然后执行启动:

            /bin/systemctl start mysqld.service/bin/systemctl status mysqld.service/bin/systemctl restart mysqld.service/bin/systemctl stop mysqld.service

            四、初始化配置

            1、查看初始化密码

                 grep 'password' /var/log/mysqld.log

              [root@bogon ops]# grep 'password' /var/log/mysqld.log2023-01-24T15:29:53.275110+08:00 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: mpBBAW?Vc9pw

              2、连接数据库

               mysql -u root -h127.0.0.1 -P3306 -p

              3、授权被远程访问

              查询当前账号信息:

                  use mysql;

                  select host, user from user;

                mysql> select host, user from user;+-----------+------------------+| host | user |+-----------+------------------+| localhost | mysql.infoschema || localhost | mysql.session || localhost | mysql.sys || localhost | root |+-----------+------------------+4 rows in set (0.00 sec)

                授权所有主机:update user set host = "%" where user='root';

                授权特定主机:

                update user set host = "10.19.115.87" where user='root';

                立即生效: flush privileges;

                五、信息验证

                验证数据库时间是否正确select now() from dual;

                  mysql> select now() from dual;+---------------------+| now() |+---------------------+| 2023-01-24 15:46:22 |+---------------------+1 row in set (0.00 sec)

                  查看当前数据库是否区分大小写:

                      SHOW VARIABLES LIKE 'lower_case_table_names';

                    mysql> SHOW VARIABLES LIKE 'lower_case_table_names';+------------------------+-------+| Variable_name | Value |+------------------------+-------+| lower_case_table_names | 1 |+------------------------+-------+1 row in set (0.01 sec)

                    MySQL服务器的lower_case_table_names参数的值为1,这表示表名不区分大小写。

                    查看是否开启Binlog日志:SHOW VARIABLES LIKE 'log_bin';

                      mysql> SHOW VARIABLES LIKE 'log_bin';+---------------+-------+| Variable_name | Value |+---------------+-------+| log_bin | ON |+---------------+-------+1 row in set (0.00 sec)

                      六、配置防火墙放行规则

                         firewall-cmd --zone=public --add-port=8036/tcp --permanent; firewall-cmd --reload   firewall-cmd  --zone=public  --list-ports;80/tcp 9000/tcp 3366/tcp 5000/tcp 5001/tcp 8000/tcp 8001/tcp 6379/tcp 8036/tcp

                        七、报错处理

                        启动失败,查看日志:

                        [MY-010262] [Server] Can't start server: Bind on TCP/IP port: Permission den

                        解决:关闭selinux

                        setenforce 0        #临时关闭

                        修改配置文件:/etc/selinux/config

                            SELINUX=disabled

                        重新启动,即恢复正常