Deepin安装MySQL8

Deepin安装MySQL8

千霜   2019-06-19 18:52:42     4096     收藏   7
分类专栏:   linux   文章标签:   deepin   mysql   8
版权

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

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

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

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

    #检查是否已安装, 看是否提示已安装
    apt search libaio
    #安装
    apt install libaio1 #为啥多了个1? 因为仓库中名字就是这个..
    
    • 1
    • 2
    • 3
    • 4
  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
    
    • 1
  4. 解压: 解压后, 可以凭自己喜好存于某个位置

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

    # 创建一个不能登录的系统用户mysql, 默认也创建了组
    useradd -r -s /bin/false mysql
    
    • 1
    • 2
  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
      
      • 1
    • -initialize-insecure: root账户无密码

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

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

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

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

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

    • 设置root账户密码

    • 阻止外部访问root账户

    • 删除匿名用户

    • 等等

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

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

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

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

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

    但新时代就用新方法, 这里通过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
    
     
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

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

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

    接下来启动它

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

    大功告成!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章