1.以root用户登录待安装的服务器。

2.上传软件包并解压。

a.以root用户通过sftp/ftp工具上传“mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz”软件包到“/opt”目录 。

b.进入opt目录,并解压缩软件包。

# cd /opt/

# tar -xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

c.将解压后目录改名为mysql。

# mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql

 

3.安装和初始化MySQL。

a.创建用户和用户组,并进行授权。

i.添加mysql组。

# groupadd mysql

ii.添加mysql用户。

# useradd -d /home/mysql -s /bin/bash -g mysql -m mysql

iii.把mysql目录授权给mysql用户。

# chown -R mysql:mysql /opt/mysql

iv.在数据盘目录下(如/data01),创建mysql-data目录及子目录tmp。

# mkdir /data01/mysql-data

# mkdir /data01/mysql-data/tmp

# mkdir /data01/mysql-data/log

v.把mysql-data目录及子目录授权给mysql组中的mysql用户。

# chown -R mysql:mysql /data01/mysql-data

vi.mysql-data目录的所属群组修改为mysql。

# chgrp -R mysql /data01/mysql-data

 

b.新建并编辑my.cnf文件。

i.在mysql目录下新建并编辑my.cnf文件。

# vi /opt/mysql/my.cnf

输入i进入编辑模式,按如下要求修改文件内容,修改完成后按Esc退出编辑模式,执行:wq!保存并退出。其中,“bind-address”参数请修改为MySQL服务器的地址。

[mysqld]

basedir = /opt/mysql 

bind-address = 10.10.10.30

datadir = /data01/mysql-data/workdbs

tmpdir = /data01/mysql-data/tmp/

port = 3306

socket =/opt/mysql/lib/mysql.sock 

lower_case_table_names=1 

character-set-server = utf8

max_allowed_packet = 150M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,STRICT_ALL_TABLES 

log-error=/data01/mysql-data/log/mysql_3306.log 

max_connections=1000 

event_scheduler=ON

[mysql]

default-character-set = utf8

socket =/opt/mysql/lib/mysql.sock

 

ii.执行如下命令,修改my.cnf文件的属主。

# chown mysql:mysql /opt/mysql/my.cnf

 

iii.拷贝my.cnf文件到etc目录下。

# cp -fr /opt/mysql/my.cnf /etc/my.cnf

 

说明: 

若etc目录下已有my.cnf,会提示如下信息,请输入yes,替换原有文件。

cp: overwrite ‘/etc/my.cnf’?

 

c.修改系统配置文件profile。

i.编辑etc目录下的“profile”文件。

# vi /etc/profile

输入i进入编辑模式,在文件末尾添加如下内容:

export PATH=$PATH:/opt/mysql/bin

export PATH=$PATH:/etc/init.d

添加完成后按Esc退出编辑模式,执行:wq!保存并退出。

ii.重新加载etc目录下的profile文件。

# source /etc/profile

d.将mysql.server复制到/etc/init.d/ 。

# cd /opt/mysql

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

 

说明: 

如果执行cp -a ./support-files/mysql.server /etc/init.d/mysqld命令,即重命名mysql.server文件为mysqld,则将使用mysqld作为MySQL的服务名,而不是mysql.server。

 

e.初始化mysql

# cd /opt/mysql

# ./bin/mysqld –initialize –user=mysql –basedir=/opt/mysql/ –datadir=/data01/mysql-data/workdbs

命令执行后,如正确,则不会有显示信息。

 

f.查看日志文件,获取临时密码。

# cat /data01/mysql-data/log/mysql_3306.log

 

2018-03-17T08:10:25.707388Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more deta

ils).

2018-03-17T08:10:25.707430Z 0 [Warning] ‘NO_ZERO_DATE’, ‘NO_ZERO_IN_DATE’ and ‘ERROR_FOR_DIVISION_BY_ZERO’ sql modes should be used with strict mode. They will be merged with strict mo

de in a future release.

2018-03-17T08:10:25.707434Z 0 [Warning] ‘NO_AUTO_CREATE_USER’ sql mode was not set.

2018-03-17T08:10:26.864589Z 0 [Warning] InnoDB: New log files created, LSN=45790

2018-03-17T08:10:27.068801Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.

2018-03-17T08:10:27.154126Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: a6a8df86-29b

a-11e8-9a31-286ed48958fb.

2018-03-17T08:10:27.161747Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed’ cannot be opened.

2018-03-17T08:10:27.703898Z 0 [Warning] CA certificate ca.pem is self signed.

2018-03-17T08:10:28.083190Z 1 [Note] A temporary password is generated for root@localhost: 9hkqi,g9ejD.

获取临时密码,如:“9hkqi,g9ejD.”。

 

g.创建软连接。

i.将mysql的安装目录软连接到local下面。

# ln -s /opt/mysql /usr/local/mysql

 

ii.将mysql.sock文件软连接到tmp下面

# ln -s /opt/mysql/lib/mysql.sock /tmp/mysql.sock

 

4.注册并设置mysql.server服务为开机自启动。

# systemctl enable mysql.server.service

说明: 

如果步骤3.d使用mysqld作为服务名,则注册命令使用: systemctl enable mysqld.service,如果出现错误需要执行一段命令,直接复制第二行执行即可。

 

5.启动并修改初始密码。

a.在“/opt/mysql/support-files”目录下启动MySQL。

# cd /opt/mysql/support-files

# mysql.server start

 

说明: 

步骤3.d使用的mysql的服务名为mysql.server时,mysql的启动,停止,状态检查命令分别使用:

启动:service mysql.server start

停止:service mysql.server stop

状态检查:service mysql.server status

步骤3.d使用的mysql的服务名为mysqld时,mysql的启动,停止,状态检查命令分别使用:

启动:service mysqld start

停止:service mysqld stop

状态检查:service mysqld status

b.查看MySQL状态。

# mysql.server status

系统显示如下类似信息表示MySQL状态正常:

 

MySQL running (70442)                                                                done

mysql.server.service – LSB: start and stop MySQL

   Loaded: loaded (/etc/init.d/mysql.server; bad; vendor preset: disabled)

   Active: active (running) since Fri 2018-03-16 17:56:01 CST; 6s ago

Docs: man:systemd-sysv-generator(8)

  Process: 62130 ExecStop=/etc/init.d/mysql.server stop (code=exited, status=0/SUCCESS)

  Process: 70128 ExecStart=/etc/init.d/mysql.server start (code=exited, status=0/SUCCESS)

Tasks: 28 (limit: 512)

   CGroup: /system.slice/mysql.server.service

   ├─70153 /bin/sh /opt/mysql/bin/mysqld_safe –datadir=/data01/mysql-data/workdbs –pid-file=/data01/mysql-data/workdbs/NKG1000132347.pid

   └─70442 /opt/mysql/bin/mysqld –basedir=/opt/mysql –datadir=/data01/mysql-data/workdbs –plugin-dir=/opt/mysql/lib/plugin –user=mysql –log-error=NKG1000132347.err –pid-file=/data01/mysql-data/workdbs/NKG1000132347.pid –socket=/opt/mysql/lib/mysql.sock –port=3306

   

c.在“opt/mysql/bin”目录下执行以下命令登录MySQL。

# cd /opt/mysql/bin

# mysql -u root -p

 

按照提示信息输入记录的临时密码。

Enter Password:

登录成功后系统显示如下类似信息:

 

Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 2

Server version: 5.7.24-enterprise-commercial-advanced

 

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> 

d.修改root用户密码。

mysql> set password=password(‘Password’);

其中,单引号中的Password由用户自定义。

 

说明: 

密码不能与帐号或者帐号的倒写相同。

密码长度8~32个字符。

密码必须至少包含如下三种字符的组合:

至少一个小写字母

至少一个大写字母

至少一个数字

至少一个特殊字符:`~!@#$%^&*()-_=+\|[{}];:'”,<.>/?或空格

e.赋予任何主机访问数据的权限。

mysql> grant all privileges on *.* to ‘root’@’%’ identified by ‘Password’ with grant option;

其中,单引号中的Password由用户自定义。

 

f.使修改生效并使用数据库。

mysql> flush privileges;

mysql> use mysql;

 

g.查看当前用户。

mysql> select host,user from user;

 

系统显示如下类似信息,表示数据库已正常安装和运行。

+———–+———–+

| host      | user      |

+———–+———–+

| %         | root      |

| localhost | mysql.sys |

| localhost | root      |

+———–+———–+

3 rows in set (0.01 sec)

h.退出MySQL数据库。

mysql> exit

6.将/opt/mysql/bin/目录下的可执行程序mysql拷贝到/usr/bin目录下,方便后续执行这个命令。

# cp /opt/mysql/bin/mysql /usr/bin

 

  1. 以root用户登录待安装的服务器。
  2. 上传软件包并解压。
    1. 以root用户通过sftp/ftp工具上传“mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz”软件包到“/opt”目录
    2. 进入opt目录,并解压缩软件包。

      # cd
      /opt/

      # tar -xzvf
      mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

    3. 将解压后目录改名为mysql。

      # mv mysql-5.7.24-linux-glibc2.12-x86_64
      mysql

  3. 安装和初始化MySQL。
    1. 创建用户和用户组,并进行授权。
      1. 添加mysql组。

        # groupadd mysql

      2. 添加mysql用户。

        # useradd -d
        /home/mysql -s /bin/bash -g mysql -m mysql

      3. 把mysql目录授权给mysql用户。

        # chown -R
        mysql:mysql /opt/mysql

      4. 在数据盘目录下(如/data01),创建mysql-data目录及子目录tmp。

        # mkdir
        /data01/mysql-data

        # mkdir
        /data01/mysql-data/tmp

        # mkdir
        /data01/mysql-data/log

      5. 把mysql-data目录及子目录授权给mysql组中的mysql用户。

        # chown -R
        mysql:mysql /data01/mysql-data

      6. mysql-data目录的所属群组修改为mysql。

        # chgrp -R mysql
        /data01/mysql-data

    2. 新建并编辑my.cnf文件。
      1. 在mysql目录下新建并编辑my.cnf文件。

        # vi
        /opt/mysql/my.cnf

        输入i进入编辑模式,按如下要求修改文件内容,修改完成后按Esc退出编辑模式,执行:wq!保存并退出。其中,“bind-address”参数请修改为MySQL服务器的地址。

        [mysqld]
        basedir = /opt/mysql 
        bind-address = 10.10.10.30
        datadir = /data01/mysql-data/workdbs
        tmpdir = /data01/mysql-data/tmp/
        port = 3306
        socket =/opt/mysql/lib/mysql.sock 
        lower_case_table_names=1 
        character-set-server = utf8
        max_allowed_packet = 150M
        sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,STRICT_ALL_TABLES 
        log-error=/data01/mysql-data/log/mysql_3306.log 
        max_connections=1000 
        event_scheduler=ON
        [mysql]
        default-character-set = utf8
        socket =/opt/mysql/lib/mysql.sock
      2. 执行如下命令,修改my.cnf文件的属主。

        # chown mysql:mysql /opt/mysql/my.cnf

      3. 拷贝my.cnf文件到etc目录下。

        # cp -fr /opt/mysql/my.cnf /etc/my.cnf

        说明:

        若etc目录下已有my.cnf,会提示如下信息,请输入yes,替换原有文件。

        cp: overwrite '/etc/my.cnf'?
    3. 修改系统配置文件profile。
      1. 编辑etc目录下的“profile”文件。

        # vi /etc/profile

        输入i进入编辑模式,在文件末尾添加如下内容:

        export PATH=$PATH:/opt/mysql/bin
        export PATH=$PATH:/etc/init.d

        添加完成后按Esc退出编辑模式,执行:wq!保存并退出。

      2. 重新加载etc目录下的profile文件。

        # source /etc/profile

    4. 将mysql.server复制到/etc/init.d/ 。

      # cd /opt/mysql

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

      说明:

      如果执行cp -a ./support-files/mysql.server /etc/init.d/mysqld命令,即重命名mysql.server文件为mysqld,则将使用mysqld作为MySQL的服务名,而不是mysql.server。

    5. 初始化mysql

      # cd /opt/mysql

      # ./bin/mysqld –initialize –user=mysql –basedir=/opt/mysql/ –datadir=/data01/mysql-data/workdbs

      命令执行后,如正确,则不会有显示信息。

    6. 查看日志文件,获取临时密码。

      # cat /data01/mysql-data/log/mysql_3306.log

      2018-03-17T08:10:25.707388Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more deta
      ils).
      2018-03-17T08:10:25.707430Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mo
      de in a future release.
      2018-03-17T08:10:25.707434Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
      2018-03-17T08:10:26.864589Z 0 [Warning] InnoDB: New log files created, LSN=45790
      2018-03-17T08:10:27.068801Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
      2018-03-17T08:10:27.154126Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: a6a8df86-29b
      a-11e8-9a31-286ed48958fb.
      2018-03-17T08:10:27.161747Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
      2018-03-17T08:10:27.703898Z 0 [Warning] CA certificate ca.pem is self signed.
      2018-03-17T08:10:28.083190Z 1 [Note] A temporary password is generated for root@localhost: 9hkqi,g9ejD.

      获取临时密码,如:“9hkqi,g9ejD.”。

    7. 创建软连接。
      1. 将mysql的安装目录软连接到local下面。

        # ln -s /opt/mysql /usr/local/mysql

      2. 将mysql.sock文件软连接到tmp下面

        # ln -s /opt/mysql/lib/mysql.sock /tmp/mysql.sock

  4. 注册并设置mysql.server服务为开机自启动。

    # systemctl enable mysql.server.service

    说明:

    如果步骤3.d使用mysqld作为服务名,则注册命令使用: systemctl enable mysqld.service

  5. 启动并修改初始密码。
    1. 在“/opt/mysql/support-files”目录下启动MySQL。

      # cd /opt/mysql/support-files

      # mysql.server start

      说明:

      • 步骤3.d使用的mysql的服务名为mysql.server时,mysql的启动,停止,状态检查命令分别使用:
        • 启动:service mysql.server start
        • 停止:service mysql.server stop
        • 状态检查:service mysql.server status
      • 步骤3.d使用的mysql的服务名为mysqld时,mysql的启动,停止,状态检查命令分别使用:
        • 启动:service mysqld start
        • 停止:service mysqld stop
        • 状态检查:service mysqld status
    2. 查看MySQL状态。

      # mysql.server status

      系统显示如下类似信息表示MySQL状态正常:

      MySQL running (70442)                                                                done
      mysql.server.service - LSB: start and stop MySQL
         Loaded: loaded (/etc/init.d/mysql.server; bad; vendor preset: disabled)
         Active: active (running) since Fri 2018-03-16 17:56:01 CST; 6s ago
           Docs: man:systemd-sysv-generator(8)
        Process: 62130 ExecStop=/etc/init.d/mysql.server stop (code=exited, status=0/SUCCESS)
        Process: 70128 ExecStart=/etc/init.d/mysql.server start (code=exited, status=0/SUCCESS)
          Tasks: 28 (limit: 512)
         CGroup: /system.slice/mysql.server.service
                 ├─70153 /bin/sh /opt/mysql/bin/mysqld_safe --datadir=/data01/mysql-data/workdbs --pid-file=/data01/mysql-data/workdbs/NKG1000132347.pid
                 └─70442 /opt/mysql/bin/mysqld --basedir=/opt/mysql --datadir=/data01/mysql-data/workdbs --plugin-dir=/opt/mysql/lib/plugin --user=mysql --log-error=NKG1000132347.err --pid-file=/data01/mysql-data/workdbs/NKG1000132347.pid --socket=/opt/mysql/lib/mysql.sock --port=3306
    3. 在“opt/mysql/bin”目录下执行以下命令登录MySQL。

      # cd /opt/mysql/bin

      # mysql -u root -p

      按照提示信息输入记录的临时密码。

      Enter Password:

      登录成功后系统显示如下类似信息:

      Enter password: 
      Welcome to the MySQL monitor.  Commands end with ; or \g.
      Your MySQL connection id is 2
      Server version: 5.7.24-enterprise-commercial-advanced
      
      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> 
    4. 修改root用户密码。

      mysql> set password=password(‘Password‘);

      其中,单引号中的Password由用户自定义。

      说明:

      • 密码不能与帐号或者帐号的倒写相同。
      • 密码长度8~32个字符。
      • 密码必须至少包含如下三种字符的组合:
        • 至少一个小写字母
        • 至少一个大写字母
        • 至少一个数字
        • 至少一个特殊字符:`~!@#$%^&*()-_=+\|[{}];:'”,<.>/?或空格
    5. 赋予任何主机访问数据的权限。

      mysql> grant all privileges on *.* to root@’%’ identified by ‘Password with grant option;

      其中,单引号中的Password由用户自定义。

    6. 使修改生效并使用数据库。

      mysql> flush privileges;

      mysql> use mysql;

    7. 查看当前用户。

      mysql> select host,user from user;

      系统显示如下类似信息,表示数据库已正常安装和运行。

      +-----------+-----------+
      | host      | user      |
      +-----------+-----------+
      | %         | root      |
      | localhost | mysql.sys |
      | localhost | root      |
      +-----------+-----------+
      3 rows in set (0.01 sec)
    8. 退出MySQL数据库。

      mysql> exit

  6. 将/opt/mysql/bin/目录下的可执行程序mysql拷贝到/usr/bin目录下,方便后续执行这个命令。

    # cp /opt/mysql/bin/mysql /usr/bin

版权声明:本文为sxck原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/sxck/p/12579317.html