美文网首页
centOS 7 安装mysql8.0.21

centOS 7 安装mysql8.0.21

作者: 王小児 | 来源:发表于2020-11-15 13:30 被阅读0次
    文章转载自 https://blog.csdn.net/qq_37040886/article/details/107298679 ,做个记录

    文章目录

    Linux下安装mysql8.0.20

    安装前准备

    1. 下载地址

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

    2. 检测是否安装过mysql

    # 检测是否安装过mysql
    rpm -qa | grep mysql
    # 删除命令
    rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
    
    

    3. 查询所有Mysql对应的文件夹(删除)

    whereis mysql
    rm -rf /usr/lib64/mysql /usr/share/mysql
    find / -name mysql
    rm -rf /etc/selinux/targeted/active/modules/100/mysql
    
    
    在这里插入图片描述

    4. 检查mysql用户组和用户是否存在,如果没有,则创建

    cat /etc/group | grep mysql
    cat /etc/passwd |grep mysql
    groupadd mysql
    useradd -r -g mysql mysql
    
    
    在这里插入图片描述

    安装

    1. 下载、上传、解压安装包

    官网下载,xftp上传

    # 解压
    tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
    
    
    在这里插入图片描述

    2. 将解压的文件移动到/usr/local下,并重命名为mysql

    # 移动位置并重命名
    mv /mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql
    
    
    在这里插入图片描述

    3. 进入/usr/local/mysql目录下,创建data文件夹,并授权

    cd /usr/local/mysql/
    # 创建文件夹
    mkdir data
    # 给文件夹授权
    chown -R root:root /usr/local/mysql
    # 给文件夹授权
    chown -R mysql:mysql /usr/local/mysql/data/
    
    
    在这里插入图片描述

    4. 初始化数据库,并会自动生成随机密码,记下等下登陆要用

    # 初始化数据库,mysql的bin目录下的mysqld命令
    /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    
    

    临时密码:root@localhost:后面的那串代码

    在这里插入图片描述

    补充说明:
    此步可能会出错:

    出现该问题首先检查该链接库文件有没有安装使用,命令进行核查。
    并安装文件,安装完成之后重新初始化。

    # 检测命令
    rpm -qa|grep libaio
    # 
    yum install  libaio-devel.x86_64
    # 
    yum -y install numactl
    
    
    在这里插入图片描述

    5. cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

    复制过去,其实也就是空白页,一开始没有my-default.cnf这个文件,可以用touch my-default.cnf命令创建一个,并配置权限

    chmod 777 ./my-default.cnf 
    
    
    在这里插入图片描述

    6. 配置my.cnf

    vi /etc/my.cnf
    
    
    [mysqld]
    
    # 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 leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    
    # These are commonly set, remove the # and set as required.
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    socket = /tmp/mysql.sock
    log-error = /usr/local/mysql/data/error.log
    pid-file = /usr/local/mysql/data/mysql.pid
    port = 3306
    #lower_case_table_names = 1
    # server_id = .....
    # socket = .....
    #lower_case_table_names = 1
    max_allowed_packet=32M
    default-authentication-plugin = mysql_native_password
    #lower_case_file_system = on
    #lower_case_table_names = 1
    log_bin_trust_function_creators = ON
    # 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 
    
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    
    

    如果后期mysql运行报错,可以直接到log-error = /usr/local/mysql/data/error.log目录下直接查看错误日志
    命令:cat /usr/local/mysql/data/error.log

    7. 开机自启,进入/usr/local/mysql/support-files进行设置

    cd support-files/
    cp mysql.server /etc/init.d/mysql 
    chmod +x /etc/init.d/mysql
    
    
    在这里插入图片描述

    8. 注册服务并检测

    • 注册
    chkconfig --add mysql
    
    

    如果命令没有,在需要处理chkconfig

    rpm -aq |grep chkconfig
    export PATH=/sbin:$PATH
    chkconfig
    echo $PATH
    PATH="$PATH":/sbin
    echo $PATH
    
    
    • 检测
    chkconfig --list mysql
    
    
    在这里插入图片描述

    9. etc/ld.so.conf要配置路径,不然报错

    vim /etc/ld.so.conf
    
    # 添加如下内容:
    /usr/local/mysql/lib
    
    
    在这里插入图片描述

    10. 配置环境变量

    # 配置环境变量
    vim /etc/profile
    
    # 添加如下内容:
    # MYSQL ENVIRONMENT
    export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
    
    # 系统重新加载文件,记得一定要
    source /etc/profile
    
    
    在这里插入图片描述

    11. 登陆,修改密码

    密码:第4步初始化数据库随机生成得密码,输入密码不显示。

    [root@VM_0_3_centos support-files]# service mysql start
    Starting MySQL.. SUCCESS! 
    [root@VM_0_3_centos support-files]# mysql -uroot -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 82
    Server version: 8.0.20
    
    Copyright (c) 2000, 2020, 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 'root'@'localhost' identified by 'kid+1412';
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> 
    
    
    在这里插入图片描述

    12. 开启Navicat远程连接

    # 登录
    [root@VM_0_3_centos support-files]# mysql -uroot -p 
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 2582
    Server version: 8.0.20 MySQL Community Server - GPL
    
    Copyright (c) 2000, 2020, 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数据库
    mysql> use mysql
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    # 查看用户信息
    mysql> select host, user, authentication_string, plugin from user;
    +-----------+------------------+------------------------------------------------------------------------+-----------------------+
    | host      | user             | authentication_string                                                  | plugin                |
    +-----------+------------------+------------------------------------------------------------------------+-----------------------+
    | localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
    | localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
    | localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
    | localhost | root             | $A$005$=!..iRO=k:x_>qiFtXTYJmwgur/2pJH1mfk26FBL.1YZOC.YcBw8auuFFM0 | caching_sha2_password |
    +-----------+------------------+------------------------------------------------------------------------+-----------------------+
    4 rows in set (0.00 sec)
    # 更新root信息
    mysql> update user set host = '%' where user = 'root';
    Query OK, 1 row affected (0.02 sec)
    Rows matched: 1  Changed: 1  Warnings: 0
    # 授权root用户可以远程登陆,失败
    mysql> GRANT ALL ON *.* TO 'root'@'%';
    ERROR 1410 (42000): You are not allowed to create a user with GRANT
    # 立即生效,重新授权
    mysql> flush privileges; 
    Query OK, 0 rows affected (0.02 sec)
    # 授权root用户可以远程登陆
    mysql> GRANT ALL ON *.* TO 'root'@'%';
    Query OK, 0 rows affected (0.02 sec)
    # 立即生效
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    # 
    mysql> alter user 'root'@'%' identified with mysql_native_password by 'kid+1412';
    Query OK, 0 rows affected (0.01 sec)
    # 立即生效
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)
    # 退出
    mysql> exit
    Bye
    
    

    13.navicat连接成功

    在这里插入图片描述

    出现远程连接不上的问题。 是因为防火墙设置的问题 。按如下设置即可。

    在CentOS 7或RHEL 7或Fedora中防火墙由firewalld来管理
    添加
    firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)
    firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent
    重新载入: firewall-cmd --reload
    查看: firewall-cmd --zone=public --query-port=80/tcp
    删除: firewall-cmd --zone=public --remove-port=80/tcp --permanent
    开启防火墙: systemctl start firewalld.service
    关闭防火墙 :systemctl stop firewalld.service
    查看运行状态:firewall-cmd --state //running 表示运行

    相关文章

      网友评论

          本文标题:centOS 7 安装mysql8.0.21

          本文链接:https://www.haomeiwen.com/subject/mfenbktx.html