Linux下安装MySQL的tar.gz包
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
- 以root用户登录待安装的服务器。
- 上传软件包并解压。
- 以root用户通过sftp/ftp工具上传“mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz”软件包到“/opt”目录
。 - 进入opt目录,并解压缩软件包。
# cd
/opt/# tar -xzvf
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz - 将解压后目录改名为mysql。
# mv mysql-5.7.24-linux-glibc2.12-x86_64
mysql
- 以root用户通过sftp/ftp工具上传“mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz”软件包到“/opt”目录
- 安装和初始化MySQL。
- 创建用户和用户组,并进行授权。
- 添加mysql组。
# groupadd mysql
- 添加mysql用户。
# useradd -d
/home/mysql -s /bin/bash -g mysql -m mysql - 把mysql目录授权给mysql用户。
# chown -R
mysql:mysql /opt/mysql - 在数据盘目录下(如/data01),创建mysql-data目录及子目录tmp。
# mkdir
/data01/mysql-data# mkdir
/data01/mysql-data/tmp# mkdir
/data01/mysql-data/log - 把mysql-data目录及子目录授权给mysql组中的mysql用户。
# chown -R
mysql:mysql /data01/mysql-data - mysql-data目录的所属群组修改为mysql。
# chgrp -R mysql
/data01/mysql-data
- 添加mysql组。
- 新建并编辑my.cnf文件。
-
在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
- 执行如下命令,修改my.cnf文件的属主。
# chown mysql:mysql /opt/mysql/my.cnf
- 拷贝my.cnf文件到etc目录下。
# cp -fr /opt/mysql/my.cnf /etc/my.cnf
说明:若etc目录下已有my.cnf,会提示如下信息,请输入yes,替换原有文件。
cp: overwrite '/etc/my.cnf'?
-
在mysql目录下新建并编辑my.cnf文件。
- 修改系统配置文件profile。
- 编辑etc目录下的“profile”文件。
# vi /etc/profile
输入i进入编辑模式,在文件末尾添加如下内容:
export PATH=$PATH:/opt/mysql/bin export PATH=$PATH:/etc/init.d
添加完成后按Esc退出编辑模式,执行:wq!保存并退出。
- 重新加载etc目录下的profile文件。
# source /etc/profile
- 编辑etc目录下的“profile”文件。
-
将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。
- 初始化mysql
# cd /opt/mysql
# ./bin/mysqld –initialize –user=mysql –basedir=/opt/mysql/ –datadir=/data01/mysql-data/workdbs
命令执行后,如正确,则不会有显示信息。
- 查看日志文件,获取临时密码。
# 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.”。
- 创建软连接。
- 将mysql的安装目录软连接到local下面。
# ln -s /opt/mysql /usr/local/mysql
- 将mysql.sock文件软连接到tmp下面
# ln -s /opt/mysql/lib/mysql.sock /tmp/mysql.sock
- 将mysql的安装目录软连接到local下面。
- 创建用户和用户组,并进行授权。
- 注册并设置mysql.server服务为开机自启动。
# systemctl enable mysql.server.service
说明:如果步骤3.d使用mysqld作为服务名,则注册命令使用: systemctl enable mysqld.service
- 启动并修改初始密码。
- 在“/opt/mysql/support-files”目录下启动MySQL。
# cd /opt/mysql/support-files
# mysql.server start
- 查看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
- 在“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>
- 修改root用户密码。
mysql> set password=password(‘Password‘);
其中,单引号中的Password由用户自定义。
说明:- 密码不能与帐号或者帐号的倒写相同。
- 密码长度8~32个字符。
- 密码必须至少包含如下三种字符的组合:
- 至少一个小写字母
- 至少一个大写字母
- 至少一个数字
- 至少一个特殊字符:`~!@#$%^&*()-_=+\|[{}];:'”,<.>/?或空格
- 赋予任何主机访问数据的权限。
mysql> grant all privileges on *.* to ‘root‘@’%’ identified by ‘Password‘ with grant option;
其中,单引号中的Password由用户自定义。
- 使修改生效并使用数据库。
mysql> flush privileges;
mysql> use mysql;
- 查看当前用户。
mysql> select host,user from user;
系统显示如下类似信息,表示数据库已正常安装和运行。
+-----------+-----------+ | host | user | +-----------+-----------+ | % | root | | localhost | mysql.sys | | localhost | root | +-----------+-----------+ 3 rows in set (0.01 sec)
- 退出MySQL数据库。
mysql> exit
- 在“/opt/mysql/support-files”目录下启动MySQL。
- 将/opt/mysql/bin/目录下的可执行程序mysql拷贝到/usr/bin目录下,方便后续执行这个命令。
# cp /opt/mysql/bin/mysql /usr/bin