Advertisement

Linux部署MySQL8.0—手把手保姆级教程

阅读量:

👩🏽‍💻个人主页:阿木木AEcru

🔥 系列专栏:《Docker容器化部署系列》 《Java每日面筋》

💹每一次技术突破,都是对自我能力的挑战和超越。

目录

    • 一、下载MySQL8.0安装包

    • 二、安装MySQL8.0

      • 2.1 解压安装包
      • 2.2 修改文件名称
      • 2.3 创建相关文件夹
      • 2.4 新增用户组
      • 2.5 新增组用户
    • 三、编写配置文件

    • 四、初始化数据库

    • 五、初始化mysql服务

    • 六、启动运行MySQL服务

      • 6.1 启动服务
      • 6.2 修改MySQL密码
      • 6.3 开启远程访问
      • 6.4 开启防火墙端口
      • 6.5 使用工具远程连接

精彩回顾

Docker部署MySql主从详细教程

SpringBoot整合ShardingSphere-JDBC 5.3.2 实现读写分离、分库分表。)

感兴趣的可以点赞收藏,以免后面找不到哦!!感谢您的支持 !!!

一、下载MySQL8.0安装包

MySQL官网 下载地址 下载之前可以查看一下系统的位数,下面有指令

查看系统的位数(32位或64位)

复制代码
    getconf LONG_BIT
    
    
      
    

我这里是64位的,所以这里我就下载64位, 可以在官网下载后上传上去,我这里就直接使用服务器下载了

复制代码
    sudo wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz
    
    
      
    

二、安装MySQL8.0

2.1 解压安装包

复制代码
    sudo tar xvJf mysql-8.0.36-linux-glibc2.28-x86_64.tar.xz
    
    
      
    

2.2 修改文件名称

复制代码
    sudo mv mysql-8.0.36-linux-glibc2.28-x86_64 mysql-8.0.36
    
    
      
    

2.3 创建相关文件夹

进入到mysql-8.0.36文件夹中

复制代码
    sudo mkdir data   # 数据存储
    sudo mkdir log    # 日志存储
    sudo mkdir tmp    # 临时文件
    
    
      
      
      
    

2.4 新增用户组

复制代码
    sudo groupadd mysql
    
    
      
    

2.5 新增组用户

复制代码
    sudo useradd -g mysql mysql
    
    
      
    

2.6 用户授权 指向mysql8.0安装目录

复制代码
    sudo chown -R mysql.mysql /usr/local/mysql8.0/mysql-8.0.36 
    # 这里用自己实际的安装目录即可 可以通过  pwd  指令查看当前目录路径
    
    
      
      
    

三、编写配置文件

复制代码
    vi /etc/my.cnf  
    # 正常情况下是没有这个文件的,执行保存之后会自动创建
    
    
      
      
    

配置文件内容如下(文件路径记得改为自己的)

复制代码
    #[mysqld]
    #datadir=/var/lib/mysql
    #socket=/var/lib/mysql/mysql.sock
    # Disabling symbolic-links is recommended to prevent assorted security risks
    #symbolic-links=0
    # 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=/var/log/mariadb/mariadb.log
    #pid-file=/var/run/mariadb/mariadb.pid
     
    #
    # include all files from the config directory
    #
    #!includedir /etc/my.cnf.d
    
    
    # MySQL客户端程序的配置部分
    [mysql]
    # MySQL安装的基本目录
    #basedir=/usr/local/mysql8.0/mysql-8.0.36
    # MySQL数据文件存放的目录
    #datadir=/usr/local/mysql8.0/mysql-8.0.36/data/
    # MySQL服务通信的socket文件位置
    socket=/usr/local/mysql8.0/mysql-8.0.36/tmp/mysql.sock
    # MySQL服务监听的端口号
    port=3306
    # 运行MySQL服务的用户名
    user=mysql
    # 跳过权限表,通常用于恢复或维护,不建议在生产环境中启用
    #skip-grant-tables
    
    # 指定日志中的时间戳格式使用系统时间——建议不开启,开启后识别不到异常
    #log_timestamps=SYSTEM
    
    # 指定默认字符集,utf8是兼容性较好的选择,但请根据实际情况调整
    default-character-set=utf8
    
    # MySQL服务器程序的配置部分
    [mysqld]
    # MySQL服务器安装的基本目录
    basedir=/usr/local/mysql8.0/mysql-8.0.36
    # MySQL服务器数据文件存放的目录
    datadir=/usr/local/mysql8.0/mysql-8.0.36/data
    # MySQL服务器通信的socket文件位置
    socket=/usr/local/mysql8.0/mysql-8.0.36/tmp/mysql.sock
    # MySQL服务器监听的端口号
    port=3306
    # 运行MySQL服务器的用户名
    user=mysql
    # 确保日志中使用系统时间
    log_timestamps=SYSTEM
    # 设置服务器校对集,utf8_unicode_ci不区分大小写
    collation-server = utf8_unicode_ci
    # 设置服务器默认字符集
    character-set-server = utf8
    
    # 指定默认的身份验证插件,以兼容老版本客户端
    default_authentication_plugin= mysql_native_password
    
    # 此选项允许跳过权限表的认证,通常用于恢复或维护
    #skip-grant-tables
    
    # MySQL服务器安全启动的配置部分
    [mysqld_safe]
    # mysqld_safe进程的日志文件位置
    log-error=/usr/local/mysql8.0/mysql-8.0.36/log/mysqld_safe.err
    # mysqld_safe的pid文件存放位置
    pid-file=/usr/local/mysql8.0/mysql-8.0.36/tmp/mysqld.pid
    # mysqld_safe使用的socket文件位置
    socket=/usr/local/mysql8.0/mysql-8.0.36/tmp/mysql.sock
    
    # MySQL服务器启动脚本来使用的配置
    [mysql.server]
    # 如果需要,可以取消注释以指定MySQL的安装目录
    #basedir=/usr/local/mysql8.0/mysql-8.0.36
    # MySQL的数据文件存放目录
    datadir=/usr/local/mysql8.0/mysql-8.0.36/data
    # MySQL的socket文件位置
    socket=/usr/local/mysql8.0/mysql-8.0.36/tmp/mysql.sock
    # MySQL监听的端口号
    port=3306
    # 运行MySQL服务的用户名
    user=mysql
    
    # MySQLadmin工具的配置部分
    [mysqladmin]
    # mysqladmin工具使用的socket文件位置
    socket=/usr/local/mysql8.0/mysql-8.0.36/tmp/mysql.sock
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    

四、初始化数据库

复制代码
    再安装目录下执行
    sudo ./bin/mysqld --user=mysql --basedir=/usr/local/mysql8.0/mysql-8.0.36/ --datadir=/usr/local/mysql8.0/mysql-8.0.36/data/ --initialize ;
    
    
      
      
    

执行后 : 红色框框中的为 初始密码,这个需要记住

五、初始化mysql服务

复制代码
    sudo cp -a ./support-files/mysql.server /etc/init.d/mysql
    
    sudo chmod +x /etc/init.d/mysql
    
    sudo chkconfig --add mysql
    
    
      
      
      
      
      
    

指令作用如下

  1. cp -a ./support-files/mysql.server /etc/init.d/mysql:这条指令用于将MySQL服务器的启动脚本mysql.server从MySQL安装目录下的./support-files文件夹复制到系统的服务管理目录/etc/init.d,以便可以使用系统服务管理工具来控制MySQL服务。
  2. chmod +x /etc/init.d/mysql:这条指令用于给复制到/etc/init.d目录下的mysql脚本文件添加执行权限,确保它能够被系统调用执行启动、停止等操作。
  3. chkconfig --add mysql:这条指令用于将MySQL服务添加到系统服务的管理系统中,chkconfig是Red Hat系列Linux系统(如CentOS、RHEL)中用于管理服务的命令,–add选项表示添加一个新的服务。执行后,MySQL服务将能够通过service命令或systemctl(在使用systemd的系统上)进行启动、停止和重启。

检测一下是否成功

复制代码
    chkconfig --list mysql
    
    
      
    

如图所示表示成功

六、启动运行MySQL服务

6.1 启动服务

复制代码
    sudo service mysql start
    
    
      
    

这里启动后有出现错误信息

提示文件不存在之类的

复制代码
    sudo mkdir -p /usr/local/mysql8.0/mysql-8.0.36/log/
    sudo chown mysql:mysql /usr/local/mysql8.0/mysql-8.0.36/log/
    sudo chmod 777 /usr/local/mysql8.0/mysql-8.0.36/log/
    sudo chown mysql:mysql /usr/local/mysql8.0/mysql-8.0.36/data/
    sudo chmod 777 /usr/local/mysql8.0/mysql-8.0.36/data/
    sudo chown mysql:mysql /usr/local/mysql8.0/mysql-8.0.36/tmp/
    sudo chmod 777 /usr/local/mysql8.0/mysql-8.0.36/tmp/
    
    执行以上命令 ,没有的文件就创建并且赋予权限,有的就直接赋予权限。
    
    
      
      
      
      
      
      
      
      
      
    

如果说还不行,则使用最简单粗暴的方法

复制代码
    sudo chown -R mysql:mysql /usr/local/mysql8.0/mysql-8.0.36/
    sudo chmod 777 -R  /usr/local/mysql8.0/mysql-8.0.36/
    
    使用递归的形式将 安装目录下的所有文件以及文件夹都开放所有权限
    
    
      
      
      
      
    

设置完成后重新执行启动指令

这时显示ok即可,也可以使用 service mysql status; 指令查询一下当前mysql的状态

6.2 修改MySQL密码

复制代码
    进入到安装目录下的bin目录
    /usr/local/mysql8.0/mysql-8.0.36/bin
    
    登陆mysql
    ./mysql -uroot -p
    输入初始化时候的临时密码
    
    登陆成功后执行
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
    
    
      
      
      
      
      
      
      
      
      
    

6.3 开启远程访问

在登陆MySQL环境下分别执行一下指令

复制代码
    CREATE USER 'root'@'%' IDENTIFIED BY '密码';
    GRANT ALL ON *.* TO 'root'@'%';
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
    FLUSH PRIVILEGES;
    
    
      
      
      
      
    

6.4 开启防火墙端口

分别执行一下两条指令即可

复制代码
    sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
    sudo firewall-cmd --reload
    
    
      
      
    

注意:如果是云服务器,还需要再安全组开通对应的端口。

6.5 使用工具远程连接

感谢观看至此,希望该文章能够帮助到您提升知识和技能。如果您喜欢我的内容,请不要忘记点赞和分享哦!👍

全部评论 (0)

还没有任何评论哟~