• mysql系列:centos7.6上安装mysql8.0


    centos7.6 上mysql8.0的安装

    安装mysql8.0.16版本

    安装包可以从mysql官网下载,也可以https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/这里下载

    删除原来的数据库

    卸载maridb

    
    [root@localhost ~]# rpm -qa|grep mariadb
    mariadb-5.5.60-1.el7_5.x86_64
    mariadb-server-5.5.60-1.el7_5.x86_64
    mariadb-libs-5.5.60-1.el7_5.x86_64
    
    
    rpm -e --nodeps mariadb-5.5.60-1.el7_5.x86_64
    
    rpm -e --nodeps mariadb-server-5.5.60-1.el7_5.x86_64
    

    查看是否已经安装mysql

    
    [root@localhost ~]# rpm -qa | grep -i mysql
    akonadi-mysql-1.9.2-4.el7.x86_64
    perl-DBD-MySQL-4.023-6.el7.x86_64
    qt-mysql-4.8.7-2.el7.x86_64
    [root@localhost ~]# rpm -e --nodeps akonadi-mysql-1.9.2-4.el7.x86_64
    [root@localhost ~]# rpm -e --nodeps perl-DBD-MySQL-4.023-6.el7.x86_64
    [root@localhost ~]# rpm -e --nodeps qt-mysql-4.8.7-2.el7.x86_64
    
    
    

    删除mysql文件

    
    [root@localhost ~]# find / -name mysql
    /etc/selinux/targeted/active/modules/100/mysql
    /root/.virtualenvs/django_env/lib/python3.6/site-packages/django/contrib/gis/db/backends/mysql
    /root/.virtualenvs/django_env/lib/python3.6/site-packages/django/db/backends/mysql
    /root/mysql
    /var/lib/mysql
    /var/lib/mysql/mysql
    /usr/lib64/mysql
    
    
    [root@localhost ~]# rm -rf /val/lib/mysql
    [root@localhost ~]# rm -rf /usr/lib/mysql
    [root@localhost ~]# rm -rf /usr/lib64/mysql
    
    

    删除配置文档

    rm -rf /etc/my.cnf
    

    再次查找机器是否安装mysql

    rpm -qa|grep -i mysql
    

    关闭Selinux

    # 临时关闭
    setenforce 0
    # 永久关闭
    vim /etc/sysconfig/selinux
    SELINUX=enforcing 改为 SELINUX=disabled
    
    重启服务reboot
    

    安装mysql依赖包(选做)

    yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6
    yum update libstdc++-4.4.7-4.el6.x86_64
    yum search libaio # 检索相关信息
    yum install libaio # 安装依赖包
    yum install net-tools
    

    第一种安装方式 rpm包

    # 安装包
    mysql-community-client-8.0.17-1.el7.x86_64.rpm
    mysql-community-common-8.0.17-1.el7.x86_64.rpm
    mysql-community-libs-8.0.17-1.el7.x86_64.rpm
    mysql-community-server-8.0.17-1.el7.x86_64.rpm
    
    # 按照顺序安装
    rpm -ivh mysql-community-common-8.0.17-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-8.0.17-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-8.0.17-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-8.0.17-1.el7.x86_64.rpm
    

    可能的报错解决方案

    报错1 
    error: Failed dependencies: /usr/bin/perl is needed by 
    mysql-community-server-8.0.11-1.el7.x86_64 perl(Getopt::Long) is 
    needed by mysql-community-server-8.0.11-1.el7.x86_64 perl(strict)
    
    解决1 
    yum install perl
    
    
    报错2 
    error: Failed dependencies: 
    libaio.so.1()(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64 
    libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-8.0.11-1.el7.x86_64 
    解决2 
    wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm 
    rpm -ivh http://mirror.centos.org/centos/6/os/x86_64/Packages/libaio-0.3.107-10.el6.x86_64.rpm
    
    

    初始mysqld –initialize启动数据库

    mysqld --initailize --user=mysql
    chown mysql:mysql /var/lib/mysql -R
    systemctl  start  mysqld
    

    报错

    [root@localhost mysql]# mysqld --initailize
    2019-07-28T08:06:16.454284Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.17) starting as process 17757
    2019-07-28T08:06:16.457257Z 0 [ERROR] [MY-010123] [Server] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
    2019-07-28T08:06:16.457292Z 0 [ERROR] [MY-010119] [Server] Aborting
    2019-07-28T08:06:16.457404Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.17)  MySQL Community Server - GPL.
    
    # 解决方案
    vim /etc/my.cnf
    user=mysql
    port=3306
    
    
    mysqld --initailize --user=mysql
    
    
    systemctl start mysqld.service
    
    
    
    2019-07-28T08:08:22.699288Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.17)  MySQL Community Server - GPL.
    2019-07-28T08:10:21.874694Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.17) starting as process 18083
    2019-07-28T08:10:21.884794Z 1 [ERROR] [MY-012592] [InnoDB] Operating system error number 13 in a file operation.
    2019-07-28T08:10:21.884807Z 1 [ERROR] [MY-012595] [InnoDB] The error means mysqld does not have the access rights to the directory.
    2019-07-28T08:10:21.884818Z 1 [ERROR] [MY-012270] [InnoDB] os_file_get_status() failed on './ibdata1'. Can't determine file permissions
    2019-07-28T08:10:21.884830Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
    2019-07-28T08:10:21.885164Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
    2019-07-28T08:10:21.885227Z 0 [ERROR] [MY-010119] [Server] Aborting
    
    # 解决
    ll /var/run/mysqld/
    # 不存在
    mkdir -p /var/run/mysqld/
    chown -R mysql:mysql /var/run/mysqld
    # 如果还报错,则进入下一步。
    # 关闭selinux.并重启。
    setenforce 0
    
    # 重启服务
    service mysqld restart
    
      systemctl status mysqld.service
    

    开机启动服务设置

    systemctl  enable mysqld
    

    查看初始化密码

    # 命令查看数据库的密码
    cat /var/log/mysqld.log | grep password 
    
    

    第二种mysql安装方式(建议使用这一种)

    userdel mysql
    
    # 增加mysql用户组,用户
    groupadd mysql
    useradd -g mysql mysql
    
    tar xf mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz
    mv mysql-8.0.17-linux-glibc2.12-x86_64 /usr/local/mysql
    
    cd /usr/local/mysql
    mkdir data sql_log undo_log
    
    chown mysql:mysql -R data/ sql_log/ undo_log/
    
    vim /etc/profile
    export PATH=$PATH:/usr/localmysql/bin
    
    source /etc/profile
    # 拷贝my.cnf的下方内容
    vim /etc/my.cnf
    :%s@/home/mysql@/usr/local/mysql@
    
    # 初始化
    mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    
    
    # 拷贝启动程序
    cd /usr/local/mysql/support-files
    cp mysql.server /etc/init.d/mysqld
    
    # 启动服务
    /etc/init.d/mysqld start
    
    # 报错
    Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data//localhost.localdomain.pid).
    检查my.cnf中路径配置是否有误前面创建的三个文件夹是否一致,文件夹用户组是否属于mysql
    
    
    # 查询密码:
    [root@localhost sql_log]# grep password mysql-error.log
    2019-07-28T10:50:16.286737Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: du%3pH5VBo;l
    
    # 登录mysql
    mysql -uroot -p
    
    # 可以看到版本号为8.0.17
    [root@localhost sql_log]# mysql -uroot -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 9
    Server version: 8.0.17
    
    Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql>
    
    # 修改密码
    alter user user() identified by '123456';
    

    my.cnf配置文件

    [client]
    port=3306
    socket=/usr/local/mysql/data/mysql.sock
    [mysqld]
    # Skip #
    skip_name_resolve= 1
    skip-external-locking=1 
    symbolic-links= 0
    # GENERAL #
    user = mysql
    default_storage_engine=InnoDB
    character-set-server=utf8
    socket=/usr/local/mysql/data/mysql.sock
    pid_file=/usr/local/mysql/data/mysqld.pid
    basedir = /usr/local/mysql
    #log_error=/usr/local/mysql/sql_log/mysql_1302.err
    port=3306
    bind-address=0.0.0.0
    explicit_defaults_for_timestamp=off
    #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    sql_mode=NO_ENGINE_SUBSTITUTION
    #read_only=on
    # MyISAM #
    key_buffer_size=32M
    #myisam_recover=FORCE,BACKUP
    
    # undo log #
    innodb_undo_directory=/usr/local/mysql/undo_log
    innodb_undo_tablespaces=16
    
    # SAFETY #
    max_allowed_packet=100M
    max_connect_errors=1000000
    sysdate_is_now=1
    #innodb	= FORCE
    #innodb_strict_mode=1
    secure-file-priv=/usr/local/mysql/sql_log
    default_authentication_plugin='mysql_native_password'
    # Replice #
     server-id=1306
     relay_log=mysqld-relay-bin
     gtid_mode=on
     enforce-gtid-consistency
     log-slave-updates=on
     master_info_repository=TABLE
     relay_log_info_repository=TABLE
    
    
    # group replication specific options
    #plugin-load=group_replication.so
    #group_replication=FORCE_PLUS_PERMANENT
    #transaction-write-set-extraction=XXHASH64
    #loose-group_replication_start_on_boot=ON
    #loose-group_replication_bootstrap_group=OFF
    #loose-group_replication_group_name='aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa'
    #group_replication_local_address='10.102.13.2:33061'
    #group_replication_group_seeds='10.102.13.3:33061,10.102.13.5:33061'
    
    # DATA STORAGE #
     datadir=/usr/local/mysql/data/
     tmpdir=/tmp
     
    # BINARY LOGGING #
     log_bin=/usr/local/mysql/sql_log/mysql-bin
     max_binlog_size=1000M
     binlog_format=row
     expire_logs_days=7
    # sync_binlog=1
    
     # CACHES AND LIMITS #
     tmp_table_size                 = 32M
     max_heap_table_size            = 32M
     max_connections                = 4000
     thread_cache_size              = 2048
     open_files_limit               = 65535
     table_definition_cache         = 4096
     table_open_cache               = 4096
     sort_buffer_size               = 2M
     read_buffer_size               = 2M
     read_rnd_buffer_size           = 2M
    # thread_concurrency             = 24
     join_buffer_size = 1M
    # table_cache = 32768
     thread_stack = 512k
     max_length_for_sort_data = 16k
    
    
     # INNODB #
     innodb_flush_method            = O_DIRECT
     innodb_log_buffer_size = 16M
     innodb_flush_log_at_trx_commit = 2
     innodb_file_per_table          = 1
     innodb_buffer_pool_size        = 2G
     #innodb_buffer_pool_instances = 8
     innodb_stats_on_metadata = off
     innodb_open_files = 8192
     innodb_read_io_threads = 16
     innodb_write_io_threads = 16
     innodb_io_capacity = 20000
     innodb_thread_concurrency = 0
     innodb_lock_wait_timeout = 60
     innodb_old_blocks_time=1000
     innodb_use_native_aio = 1
     innodb_purge_threads=1
     innodb_change_buffering=all
     innodb_log_file_size = 128M
     innodb_log_files_in_group = 3
     innodb_data_file_path  = ibdata1:1024M:autoextend
     
     innodb_rollback_on_timeout=on
     # LOGGING #
     log_error=/usr/local/mysql/sql_log/mysql-error.log
     # log_queries_not_using_indexes  = 1
     # slow_query_log                 = 1
    slow_query_log_file=/usr/local/mysql/sql_log/slowlog_1305.log
    
     # TimeOut #
     #interactive_timeout = 30
     #wait_timeout        = 30
     #net_read_timeout = 60
    
    [mysqldump]
    quick
    max_allowed_packet = 100M
    
    [mysql]
    no-auto-rehash
    # Remove the next comment character if you are not familiar with SQL
    #safe-updates
    
    [myisamchk]
    key_buffer_size = 256M
    sort_buffer_size = 256M
    read_buffer = 2M
    write_buffer = 2M
    
    [mysqlhotcopy]
    interactive-timeout
    
    
  • 相关阅读:
    程序员的出路在哪里
    基于.NET平台常用的框架整理
    Asp.Net MVC WebApi2 自动生成帮助文档
    Jquery操作select选项集合,判断集合中是否存在option
    C#三种判断数据库中取出的字段值是否为空(NULL) 的方法
    未能加载文件或程序集“XX.XXX.Web”或它的某一个依赖项。试图加载格式不正确的程序
    网页设计制作面试题(1)
    HTML5 Canvas 画纸飞机组件
    HTML5 Canvas 画虚线组件
    C# 根据域名获取IP地址
  • 原文地址:https://www.cnblogs.com/myt2000/p/11263777.html
Copyright © 2020-2023  润新知