美文网首页
linux下安装mysql

linux下安装mysql

作者: yandaren | 来源:发表于2018-08-17 19:15 被阅读0次

IMG20180817_162402.png

操作系统我们选择linux-generic, 然后选择x86_64安装包

  • 安装包下载完后之后,将安装包解压

    tar xvf mysql-8.0.12-linux-glibc2.12-x86_64.tar.xz
    
  • 解压完毕之后,我们将文件夹移动到 /usr/local下面, 然后建立软连接(符号链接或者说类似windows的快捷方式)

    root@debian:~/soft# mv ./mysql-8.0.12-linux-glibc2.12-x86_64  /usr/local/
    root@debian:~/soft# cd /usr/local/
    root@debian:/usr/local# ls
    bin  etc  games  include  lib  man  mysql-8.0.12-linux-glibc2.12-x86_64  sbin  share  src
    root@debian:/usr/local# ln -s mysql-8.0.12-linux-glibc2.12-x86_64/ /usr/local/mysql
    root@debian:/usr/local# ls
    bin  games    lib  mysql                                sbin   src
    etc  include  man  mysql-8.0.12-linux-glibc2.12-x86_64  share
    
  • 安装步骤

    • 创建mysql用户组

      root@debian:/usr/local# groupadd  mysql
      
    • 创建mysql用户,并放入mysql用户组

      root@debian:/usr/local# useradd -r -g mysql mysql
      
    • 修改文件夹权限
      将mysql下的文件所有者都改为root

      chown -R root .
      

      将mysql下的文件的用户组改为mysql

      chgrp -R mysql .
      

      最后文件权限如下

      root@debian:/usr/local/mysql# ls -la
      total 340
      drwxr-xr-x 10 root mysql   4096 Aug 17 17:58 .
      drwxrwsr-x 11 root staff   4096 Aug 17 16:59 ..
      drwxr-xr-x  2 root mysql   4096 Aug 17 16:46 bin
      drwxr-xr-x  2 root mysql   4096 Aug 17 16:46 docs
      drwxr-xr-x  3 root mysql   4096 Aug 17 16:45 include
      drwxr-xr-x  5 root mysql   4096 Aug 17 16:46 lib
      -rw-r--r--  1 root mysql 301518 Jun 29 00:18 LICENSE
      drwxr-xr-x  4 root mysql   4096 Aug 17 16:45 man
      -rw-r--r--  1 root mysql    687 Jun 29 00:18 README
      drwxr-xr-x 28 root mysql   4096 Aug 17 16:46 share
      drwxr-xr-x  2 root mysql   4096 Aug 17 16:46 support-files
      
    • 初始化数据库
      注意, 此操作之后,最后一行 会有一个初始化密码,用于root账号 的首次登陆

      root@debian:/usr/local/mysql# ./bin/mysqld --initialize --user=mysql
      ./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
      

      提示没有 libasio.so.1, 安装之(还缺少libnuma.so.1,一起安装)

      apt-get install libaio1
      apt-get install libnuma1
      

      然后在试下初始化

      root@debian:/usr/local/mysql# ./bin/mysqld --initialize --user=mysql
      2018-08-17T10:13:54.738725Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.12-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.12) initializing of server in progress as process 15658
      2018-08-17T10:13:57.502167Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: g3JLtaUwr4,n
      2018-08-17T10:13:58.911266Z 0 [System] [MY-013170] [Server] /usr/local/mysql-8.0.12-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.12) initializing of server has completed
      

      注意这行,这里给出了首次登陆的密码: g3JLtaUwr4,n

      A temporary password is generated for root@localhost: g3JLtaUwr4,n
      
    • 生成证书

      ./bin/mysql_ssl_rsa_setup
      
    • 修改文件所有者,保证修改下如下

      root@debian:/usr/local/mysql# ls -la
      total 344
      drwxr-xr-x 11 root mysql   4096 Aug 17 18:13 .
      drwxrwsr-x 11 root staff   4096 Aug 17 16:59 ..
      drwxr-xr-x  2 root mysql   4096 Aug 17 16:46 bin
      drwxr-x---  5 root mysql   4096 Aug 17 18:14 data
      drwxr-xr-x  2 root mysql   4096 Aug 17 16:46 docs
      drwxr-xr-x  3 root mysql   4096 Aug 17 16:45 include
      drwxr-xr-x  5 root mysql   4096 Aug 17 16:46 lib
      -rw-r--r--  1 root mysql 301518 Jun 29 00:18 LICENSE
      drwxr-xr-x  4 root mysql   4096 Aug 17 16:45 man
      -rw-r--r--  1 root mysql    687 Jun 29 00:18 README
      drwxr-xr-x 28 root mysql   4096 Aug 17 16:46 share
      drwxr-xr-x  2 root mysql   4096 Aug 17 16:46 support-files
      
      
    • 启动数据库实例

      root@debian:/usr/local/mysql# ./bin/mysqld_safe --user=mysql &
      [1] 15724
      root@debian:/usr/local/mysql# Logging to '/usr/local/mysql/data/debian.err'.
      2018-08-17T10:27:46.201422Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
      
      

      新开一个连接终端,检查下mysql是否已经启动

      root@debian:/usr/local/mysql# netstat  -ano | grep 3306
      tcp6       0      0 :::33060                :::*                    LISTEN      off (0.00/0/0)
      tcp6       0      0 :::3306                 :::*                    LISTEN      off (0.00/0/0)
      
      
    • 首次登录并且修改root密码
      提示Enter password 的时候,输入上面生成的密码

      root@debian:/usr/local/mysql# cd /usr/local/mysql/bin
      root@debian:/usr/local/mysql/bin# ./mysql -u root -p
      Enter password:
      Welcome to the MySQL monitor.  Commands end with ; or \g.
      Your MySQL connection id is 8
      Server version: 8.0.12
      
      Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
      
      Oracle is a registered trademark of Oracle Corporation and/or its
      affiliates. Other names may be trademarks of their respective
      owners.
      
      Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
      
      mysql>
      
      

      修改密码, 假设我们修改为123456

      mysql> set password = '123456';
      Query OK, 0 rows affected (0.10 sec)
      
      mysql> alter user 'root'@'localhost' password expire never;
      Query OK, 0 rows affected (0.06 sec)
      
      mysql> flush privileges;
      Query OK, 0 rows affected (0.00 sec)
      
      mysql>
      

      增加一个 root@%账号实现远程登录

      grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
      

      或者用改表法

      mysql> use mysql;
      Database changed
      mysql> update user set host = '%' where user = 'root';
      Query OK, 1 row affected (0.05 sec)
      Rows matched: 1  Changed: 1  Warnings: 0
      
      mysql> select host, user from user;
      +-----------+------------------+
      | host      | user             |
      +-----------+------------------+
      | %         | root             |
      | localhost | mysql.infoschema |
      | localhost | mysql.session    |
      | localhost | mysql.sys        |
      +-----------+------------------+
      4 rows in set (0.00 sec)
      
      
    • 配置服务自动启动

      • 复制服务文件到 /etc/init.d
      cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
      
      • 启用mysqld.service
      systemctl enable mysqld.service
      

      如果不先执行该命令,会提示服务load失败

      Failed to start mysqld.service: Unit mysqld.service failed to load: No such file or directory.
      
      • 服务相关命令
        • 服务状态:service mysqld status
        • 服务启动:service mysqld start
        • 服务停止:service mysqld stop
    • 将mysql的二进制目录放入环境变量
      打开文件 /etc/profile
      在文件尾部加上

      export PATH=$PATH:/usr/local/mysql/bin
      

      然后运行命令 source /etc/profile 以使环境变量马上生效

    • 至此,就完成了mysql的安装和配置

相关文章

网友评论

      本文标题:linux下安装mysql

      本文链接:https://www.haomeiwen.com/subject/dndtiftx.html