Deepin安装MySQL8

官方网站给出了多种安装方式, 如源码安装,压缩包安装, 二进制安装(如.deb文件). 尽管可以通过包管理器 (如apt,yum) 来安装, 可能安装的并不是最新版的. 如果使用官方仓库源, 也不能保证兼容性.

因此这里使用压缩包方式安装MySQL8, 它适用于大多数发行版. 这里本系统为Deepin.

  1. 环境预处理: 安装前, 先删除原有mysql, 和配置,数据等文件, 如/etc/my.cnf/etc/mysql/

  2. MySQL依赖: mysql依赖于libaio库, 安装前先检查下是否已安装, 一般情况都有

    #检查是否已安装, 看是否提示已安装
    apt search libaio
    #安装
    apt install libaio1 #为啥多了个1? 因为仓库中名字就是这个..
    
  3. 下载: 通过浏览器下载, 地址:Download MySQL Community Server; 或使用curl下载, 如下所示

    curl -L  https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz -O
    
  4. 解压: 解压后, 可以凭自己喜好存于某个位置

    tar -xJvf Downloads/mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
    
  5. 创建mysql用户: 官网建议, 以非root用户运行mysqld, 有助于安全性. 这里创建了mysql用户

    # 创建一个不能登录的系统用户mysql, 默认也创建了组
    useradd -r -s /bin/false mysql
    
  6. 初始化mysqld : 在这个过程中会建立root用户, 生成权限表等, 并存入数据目录中, 如果不存在会自动生成, 经测试为data目录, 而不是官方说的mysql-files(这是一个坑)! 初始化有以下两种方式:

    mysqld就是mysql服务端程序, 这里就是初始化该程序.

    下面我们会通过--user指定mysqld以mysql身份运行, 由于切换身份需要root权限, 所以还要加上sudo

    该数据目录是mysqld存放数据库等文件的地方, 此时该文件夹的拥有者为mysql, 也就是说mysqld以mysql身份运行时只能写该目录内的数据, 大大保证了安全性

    • --initialize: 生成root密码, 打印在控制台

      sudo bin/mysqld --initialize --user=mysql
      
    • -initialize-insecure: root账户无密码

      bin/mysqld --initialize-insecure --user=mysql
      
  7. 运行mysqld : 同样的, 以mysql身份运行, 这里的mysqld_safe一个启动mysqld方便的工具.

    sudo bin/mysqld_safe --user=mysql &
    
  8. 修改root密码: mysql是一个命令行客户端, 在bin目录下, 最好设置环境变量, 这里略.

    #root有密码的登录方式
    mysql -u root -p 
    #root无密码的登录方式
    mysql -u root --skip-password
    #进入后修改密码
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
    

    修改完后请关闭msyqld, 怎么关? 思路是使用ps的到进程号, kill杀死它

  9. 增加安全性(可选) : mysql提供了mysql_secure_installation脚本来配置msyqld安全方面的配置, 功能如

    • 设置root账户密码

    • 阻止外部访问root账户

    • 删除匿名用户

    • 等等

      使用后最直观感受是, 用户密码不能是简单的123456了, 必须复杂… 开发环境下不建议使用.

    #直接运行即可
    mysql_secure_installation
    
  10. 自启配置: 我们要自启的是mysqld, 但是我不熟悉它的配置, 但是它提供了一个mysql.server, 能够方便的开启和关闭mysqld. 该脚本被写死了, 它规定mysql必须存在于/usr/local/下, 目录名mysql, 这里我使用符号连接来解决:

    ln -s $PWD/mysql-8.0.16-linux-glibc2.12-x86_64 /usr/local/mysql
    

    deepin使用systemd来管理启动程序的, 它兼容Sys V, 因此也可使用Sys V的方式来让mysql加入自启, 如:

    cp support-files/mysql.server /etc/init.d/mysql.server
    

    但新时代就用新方法, 这里通过Systemd的方式加入自启, 在/usr/lib/systemd/system/目录下创建配置文件mysqld.service

    [Unit]
    Description=MySQL Server
    After=network.target local-fs.target remote-fs.target
    
    [Service]
    Type=forking
    PIDFile=/usr/local/mysql/data/sidian-PC.pid
    ExecStart=/usr/local/mysql/support-files/mysql.server start
    ExecStop=/usr/local/mysql/support-files/mysql.server stop
    ExecReload=/usr/local/mysql/support-files/mysql.server restart
    User=mysql
    
    [Install]
    WantedBy=multi-user.target
    

    要注意点是, PIDFile的名字一般为你电脑的域名, 如我的sidian-PC, 通过hostname命令获取.

    User选项规定mysql以mysql身份运行.

    接下来启动它

    sudo systemctl enable mysqld.service # 加入自启
    sudo systemctl start mysqld.service # 现在启动mysqld
    

    大功告成!

参考

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值