• linux 安装mysql8以及远程连接步骤(图文并茂)


    一、下载安装包:

      1、新建文件夹,主要是为了弄个地方放下载的安装文件:

    mkdir mysql8

      2、进入到创建的mysql8文件夹中,下载mysql文件: 

    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

     然后等待它漫长的下载过程吧,如果中途不动了,就终止下载,重新执行这个命令就行,最后会有多个文件,把之前下载的失败的不完整的安装包删除掉就好了 。下载完成后的查看下载结果如下

       3、解压下载的mysql压缩包:

    tar -zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

    解压后查看当前目录的文件,会看到有两个,一个是压缩的,一个是解压后的。

     注意: 如果有报错,就按照对应的依赖包(其他报错请留言,一起解决),如:

    如果报如下错误,请安装组件
    [root@iZ8vbf0nw945emer2xmpdhZ soft]# tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
    tar (child): xz: Cannot exec: No such file or directory
    tar (child): Error is not recoverable: exiting now
    tar: Child returned status 2
    tar: Error is not recoverable: exiting now
    [root@iZ8vbf0nw945emer2xmpdhZ soft]# yum install -y xz 

    二、安装过程

      1、将解压的文件重命名mysql,并移动到/usr/local目录下

    mv mysql-8.0.11-linux-glibc2.12-x86_64 mysql
    mv mysql /usr/local/

    图示:

    查看移动后的结果,图示:

      2、进入到/usr/local目录下,创建用户组和用户并授权

    cd /usr/local/
    groupadd mysql
    useradd -r -g mysql mysql
    cd mysql/       #注意:进入mysql文件下授权所有的文件
    chown -R mysql:mysql ./ 

    图示:

       3、到/usr/local/mysql目录下,创建data文件夹

    mkdir data

    图示:

       6、初始化数据库,会生成随机密码,需要记住,一会要用

    bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

    图示:

       7、修改/usr/local/mysql当前目录的用户

    chown -R root:root ./
    chown -R mysql:mysql data

    图示:

       8、复制创建的文件到etc目录并重命名(先创建、在授权、在复制、在重命名)

    cd support-files/
    touch my-default.cnf
    chmod 777 ./my-default.cnf 
    cd ../
    cp support-files/my-default.cnf /etc/my.cnf 

    图示:

       9、编辑配置复制过去的my.cnf文件

    cd /
    cd etc
    vim my.cnf

    图示,把下边的内容复制到my.cnf文件中:

    [mysqld]
    character_set_server=utf8
    init_connect='SET NAMES utf8'
    # 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
    tmpdir = /tmp
    port = 7766
    #lower_case_table_names = 1
    # server_id = .....
    # socket = .....
    #lower_case_table_names = 2
    max_allowed_packet=50M
    default-authentication-plugin = mysql_native_password
    #lower_case_file_system = on
    #lower_case_table_names = 2
    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 
    bind-address = 0.0.0.0
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    内容说明:

       10、设置开机自启

    cd /usr/local/mysql
    cd support-files/
    cp mysql.server /etc/init.d/mysql 
    chmod +x /etc/init.d/mysql

    图示

      11、注册服务

    chkconfig --add mysql

    正常情况是不会出问题的,但是如果提示没有这个命令就需要需求设置一波:

    rpm -aq |grep chkconfig
    export PATH=/sbin:$PATH
    chkconfig
    echo $PATH
    PATH="$PATH":/sbin
    echo $PATH

       12、查看是否注册成功:

    chkconfig --list mysql

    图示:

       13、配置 etc/ld.so.conf路径

    vim /etc/ld.so.conf
     添加以下内容:
    /usr/local/mysql/lib

    图示:

      14、配置环境变量

    vim /etc/profile
    source /etc/profile
         
    添加如下内容:
    MYSQL ENVIRONMENT
    export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

    图示:

       15、登录

    mysql -uroot -p

    图示:

     报错一:提示未找到命令。

    原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
    首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,

    解决办法:

    执行这样的命令:

    ln -s /usr/local/mysql/bin/mysql /usr/bin

    图示:

     报错二:

     解决办法:

    反手就是一个命令:

    sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

    再次执行登录命令:

     哦吼,你会发现又报错了

    错误三:

     解决办法:

    vim /etc/my.cnf

    进入编辑my.cnf文件的模式下,在文件中加入一句话: skip-grant-tables    (这句话就是设置为免密登录)

    设置过后还不能登录还提示报错
    先启动mysql :

    service mysql start

    如果提示无法启动成功就只能先关闭进程了
    关闭进程指令:

    ps aux |grep ‘mysql*’

    关闭mysql的所有进程 ,再次执行上边的启动mysql命令:

    在去登录mysql: mysql -uroot -p

    进去之后首先先修改密码:

    use mysql;
    select user,authentication_string,host from user;
    ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

    图示:

     记得去吧刚才在my.cnf文件中加的那句话(skip-grant-tables)给注释掉。

      16、修改密码

    use mysql;    #进入数据库
    select host,user,authentication_string,plugin from user;   #查看用户信息
    grant all privileges on *.* to 'root'@'%'; #授权root用户可以远程登陆
    flush privileges; #立即生效
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Kuaigui2019!'; #修改root用户密码
    FLUSH PRIVILEGES; #立即生效,这个最后执行。要执行

    如果是执行给root用户授权这一步时报错,且错误信息如下:

     解决办法:

    # 使用mysql 数据库
    use mysql;
    # 特定用户的host 修改
    update user set host='%' where user='root';
    # 指定用户的授权
    grant all privileges on root.* to root@'%'

    此时再去查看没看表的变化:

     其中root用户的host已经由localhost变成 %了

    如果在执行 第五句命令的时候报错,且如下:

     解决办法:

    回到上一个报错去解决。

    最后别忘了执行最后一个命令(FLUSH PRIVILEGES;

      17、退出、重启mysql

    # 退出mysql 
    ctrl + z
    # 重启mysql服务
    service mysql restart

    图示:

    到这一步基本都可以说OK了 。

    万里长征,还差最后一步,远程连接

    三、设置远程连接

      1、关闭本地防火墙

      2、在my.cnf文件中添加一句话

    default_authentication_plugin=mysql_native_password

      3、开启linux的防火墙

    firewall-cmd --zone=public --add-port=7766/tcp --permanent
    firewall-cmd --reload

    执行上边命令的时候记得修改成自己的端口号

    图示:

       4、配置默认编码为utf-8

    进入my.cnf文件的编辑模式下,添加以下内容:

    character_set_server=utf8
    init_connect='SET NAMES utf8'

    图示:

     编辑完成后保存并退出

    重启mysql服务 : service mysql restart

    到了这一步,我猜你已经成功了

    还有一个报错:

     解决办法:

    我猜是密码的问题导致的

    解决办法,配置免密登录,重启服务,修改密码,(这个过程前边说过了,不重复说)

    当以上所有的都没有问题时,用Navicat测试去连接mysql,如果发现连接的时候报错,如下:

     那就去把linux的防火墙关掉:

    systemctl stop firewalld.service

    再去测试连接:

    补充:

    两个虚拟机之间相互传文件办法:

    虚拟机1: 192.168.198.100

    虚拟机2:  192.168.116.128

    需求:将虚拟机1中的文件传到虚拟机2中。

    文件所在虚拟机1中的全路径是: /root/mysql/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

    进入到虚拟机2中需要存放的文件夹中,执行如下命令:

    scp -r root@192.168.198.100:/root/mysql/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz ./
  • 相关阅读:
    BZOJ 4236~4247 题解
    OCUI界面设计:滚动视图与分页控件初探
    大数乘法
    Effective C++ 11-17
    [Matlab+C/C++] 读写二进制文件
    Java 反射 方法调用
    如何使用LaTeX让自己不乱?
    LaTeX 相对于 Word 有什么优势?
    你在发表理科学术文章过程中有哪些经验值得借鉴?
    破译手势在对话中的意义
  • 原文地址:https://www.cnblogs.com/Zhan-W/p/13162917.html
Copyright © 2020-2023  润新知