• Linux下安装MySQL8.0的详细步骤


    Linux下安装MySQL8.0的详细步骤

    搞了一台云服务器,首先要干的活就是得安装数据库,在Windows下安装不用说,傻瓜式操作,在Linux上安装少说要记录一下。

    我使用的是XShell7 ssh 连接工具访问的Linux,其他工具的用法和命令都一样,界面如下:
    在这里插入图片描述
    在这里我使用的不是root用户登录的,所以先切换到root用户,命令:su

    第一步:下载安装配置

    1. 切换到 /usr/local/

      cd /usr/local/

    2. 创建mysql文件夹

      mkdir mysql

    3. 切换到mysql文件夹下

      cd mysql

    4. 下载mysql8.0安装包

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

    等待下载成功

    在这里插入图片描述

    1. 解压mysql8.0安装包

      tar xvJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

    在这里插入图片描述

    1. 重命名解压出来的文件夹,这里改成mysql-8.0

      mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8.0

    2. . /use/local/mysql-8.0文件夹下创建data文件夹 存储文件

      mkdir data

    3. 分别创建用户组以及用户和密码(如果提示已存在说明之前有创建过了)

      groupadd mysql

      useradd -g mysql mysql

    4. 授权刚刚新建的用户

      chown -R mysql.mysql /usr/local/mysql/mysql-8.0
      
      chmod 750 /usr/local/mysql/mysql-8.0/data -R
      
      • 1
      • 2
      • 3
    5. 配置环境,编辑/etc/profile文件

    注意:这里有一个坑,在配置完环境变量后,需要执行sourc /etc/profile命令,使配置文件生效

    vim /etc/profile
    #--------------------------
    #点击键盘上的i键,进入输入模式,在配置文件最后增加一行:
    #--------------------------
    export PATH=$PATH:/usr/local/mysql/mysql-8.0/bin:/usr/local/mysql/mysql-8.0/lib
    #添加完成后,按Esc键退出输入模式,进入命令模式,输入:wq,保存并退出
    #然后在输入cat /etc/profile  查看是否保存成功,效果如下:↓↓↓↓↓↓
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述
    11.编辑my.cnf文件

    vi /etc/my.cnf
    
    
    [mysql]
    default-character-set=utf8mb4
    [client]
    #port=3306
    socket=/var/lib/mysql/mysql.sock
    
    [mysqld]
    #port=3306
    #server-id=3306
    user=mysql
    general_log = 1
    general_log_file= /var/log/mysql/mysql.log
    socket=/var/lib/mysql/mysql.sock
    basedir=/usr/local/mysql/mysql-8.0
    datadir=/usr/local/mysql/mysql-8.0/data
    log-bin=/usr/local/mysql/mysql-8.0/data/mysql-bin
    innodb_data_home_dir=/usr/local/mysql/mysql-8.0/data
    innodb_log_group_home_dir=/usr/local/mysql/mysql-8.0/data/
    character-set-server=utf8mb4
    lower_case_table_names=1
    autocommit=1
    default_authentication_plugin=mysql_native_password
    symbolic-links=0
    # Disabling symbolic-links is recommended to prevent assorted security risks
    # Settings user and group are ignored when systemd is used.
    # If you need to run mysqld under a different user or group,
    # customize your systemd unit file for mariadb according to the
    # instructions in http://fedoraproject.org/wiki/Systemd
    
    [mysqld_safe]
    log-error=/usr/local/mysql/mysql-8.0/data/mysql.log
    pid-file=/usr/local/mysql/mysql-8.0/data/mysql.pid
    
    #
    # include all files from the config directory
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    1. 切换到/usr/local/mysql/mysql-8.0/bin目录下
    cd bin
    
    • 1
    1. 初始化基础信息,得到数据库的初始密码(在/usr/local/mysql/mysql-8.0/bin目录下执行)
    ./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql//mysql-8.0/data/ --initialize
    #初始化完成后,复制最后的初始密码,保存下来后面需要(这一步好像并没有用)
    #igTn=3j-
    
    • 1
    • 2
    • 3
    1. 复制 mysql.server 文件,在/usr/local/mysql/mysql-8.0目录下执行
    cp -a ./support-files/mysql.server /etc/init.d/mysql 
    
    cp -a ./support-files/mysql.server /etc/init.d/mysqld
    
    • 1
    • 2
    • 3
    1. 赋予权限
    chown 777 /etc/my.cnf
    
    chmod +x /etc/init.d/mysql
    
    chmod +x /etc/init.d/mysqld
    
    • 1
    • 2
    • 3
    • 4
    • 5
    1. 检查一下/var/lib/mysql是否存在,否则进行创建
    mkdir /var/lib/mysql
    
    
    chown -R mysql:mysql /var/lib/mysql/ 
    
    • 1
    • 2
    • 3
    • 4
    1. 启动数据库,有SUCCESS字眼说明MySQL安装完成
    service mysql start 
    #出现SUCCESS 说明启动成功,效果图如下:
    
    • 1
    • 2

    在这里插入图片描述
    ps:
    如果发现启动失败,可以先查看data里面的mysql.log,如果有提示3306这样的字样,第一个想到的应该是端口被占用,
    使用lsof -i:端口号,查看是哪个PID(进程号)占用了该端口,然后使用kill PID(进程号)杀掉进程,重新执行service mysql start

    第二步:修改密码,并设置远程连接(为了可以在别的机器下面连接该mysql)

    在这一步最开始就浪费了我好大的时间。如果用之前的初始密码登录,可能会出现以下的错误:
    在这里插入图片描述
    在这一步的时候,研究了好久,记录一下处理过程:

    • 在 vim /etc/my.cnf文件中,在[mysqld]的段中加上一句:skip-grant-tables --跳过密码验证
    • 然后保存退出,重启MySQL服务
    • 然后输入mysql -uroot -p 敲两下回车,进入mysql
    • USE mysql ; --进入数据库
    • 在mysql8.0 中,这个更新语法不能用UPDATE user SET Password = password ( ‘new-password’ ) WHERE User = ‘root’ ; 使用这个:ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;
    • 最后按照下边的步骤进行就可以了。
    1. 修改数据库root账号的密码,并设置可以远程访问(因为root默认是不能远程访问的)

      ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;

    2. 执行flush privileges; 使密码生效

      flush privileges;#刷新权限

    3. 选择数据库

      use mysql;

    4. 再修改远程连接并生效

      mysql> create user ‘root’@‘%’ identified by ‘password’;
      Query OK, 0 rows affected (0.03 sec)

      mysql> grant all privileges on . to ‘root’@‘%’ with grant option;
      Query OK, 0 rows affected (0.01 sec)

      mysql> flush privileges;
      Query OK, 0 rows affected (0.00 sec)

    5. 执行提交命令,搞定!

      flush privileges;#刷新权限

  • 相关阅读:
    windows server 2012搭建ftp站点服务器,新建ftp用户,设置ftp文件夹权限,通过ftp实现文件远程备份、异地备份
    全面解析各类营养物质在炎症中的作用
    怎么突破反爬虫机制
    Hudi第四章:集成Hive
    面试复盘四
    PagerDuty使印象笔记快速响应问题
    GPT4 Plugins 插件 WebPilot 生成抖音文案
    每日一题~合并二叉树
    正则表达式符号含义
    MySQL 是怎样运行的:单表访问方法及基于成本的优化
  • 原文地址:https://blog.csdn.net/m0_67391120/article/details/126034580