mysql5.7版本tar包手动安装---redhat7.0

Posted lczz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql5.7版本tar包手动安装---redhat7.0相关的知识,希望对你有一定的参考价值。

1.官网下载安装包,删除系统自带的mariadb,查到几个包,卸载几个包,总之得删除干净

[[email protected] Desktop]# yum list | grep mariadb
mariadb-libs.x86_64                    1:5.5.41-2.el7_0            @anaconda/7.1
[[email protected] Desktop]# yum remove mariadb-libs.x86_64 -y  ==>删除这个包
[[email protected] Desktop]# yum list | grep mariadb  ==>已经查询不到mariadb
[[email protected] Desktop]# ls
mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz    ==>这是安装包

2.创建用户和组以及将安装包移动到安装目录( /usr/local/ )下

[[email protected] Desktop]# groupadd mysql
[[email protected] Desktop]# useradd -g mysql mysql
[[email protected] Desktop]# mv mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz /usr/local/
[[email protected] Desktop]# cd /usr/local/
[[email protected] local]# ls
bin  games    lib    libexec                                    sbin   src
etc  include  lib64  mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz  share

3.解压安装包,并文件重命名为mysql,删除安装包(也可以不删除,有强迫症的都会删),确定安装路径是在 /usr/local 目录下

[[email protected] local]# tar -zxvf mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz
[[email protected] local]# ls
bin    include  libexec                                    sbin
etc    lib      mysql-5.7.16-linux-glibc2.5-x86_64         share
games  lib64    mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz  src
[[email protected] local]# mv mysql-5.7.16-linux-glibc2.5-x86_64 mysql  ==>改名为mysql
[[email protected] local]# ls
bin  games    lib    libexec  mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz  share
etc  include  lib64  mysql    sbin                                       src
[[email protected] local]# rm mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz 
rm: remove regular file ‘mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz’? y
[[email protected] local]# ls
bin  etc  games  include  lib  lib64  libexec  mysql  sbin  share  src

4.编辑配置文件/ect/my.cnf,把/usr/local/mysql/support-files/my-defaults-cnf复制到/etc/目录下,并改名为my.cnf,也可以自己手动创建编辑

[[email protected] support-files]# cp -a my-default.cnf /etc/my.cnf 

 

[[email protected] local]# vim /etc/my.cnf

 

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
socket=/var/lib/mysql/mysql.sock

[mysqld]
#设置3306端口
port = 3306 
socket=/var/lib/mysql/mysql.sock
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
#设置mysql数据库的日志目录
#log-error=/var/log/mysqld.log ==>若这里指定了日志文件路径获取密码则需要到日志文件中查找, grep ‘temporary passwd‘ /var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid # 允许最大连接数 max_connections
=200 # 服务端使用的字符集默认为utf-8编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB max_allowed_packet=16M

5.初始化数据库

MySQL5.7.6之前版本都是用mysql_install_db这个命令

[[email protected] local]# ./mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

到了5.7版本后已经没有scripts这个目录,mysql_install_db也被移动到了bin目录下,5.7.6版本后这个命令已被弃用,若在5.7.6之后的版本用这个命令会报错

[[email protected] local]# ./mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
2018-12-10 13:42:04 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize  ==>系统提示换成这个命令及参数
2018-12-10 13:42:08 [ERROR]   Child process: /usr/local/mysql/bin/mysqldterminated prematurely with errno= 32
2018-12-10 13:42:08 [ERROR]   Failed to execute /usr/local/mysql/bin/mysqld --bootstrap --datadir=/usr/local/mysql/data --lc-messages-dir=/usr/local/mysql/share --lc-messages=en_US --basedir=/usr/local/mysql
-- server log begin --
2018-12-10T05:42:04.757607Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead

-- server log end --

5.7.6之后版本的初始化命令,在执行前要确保 数据库的 data 目录 是一个空目录,不让也会报错,处理方式是执行 rf 清空目录,报错信息如下

2018-12-10T11:08:53.586149Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.

开始初始化数据库

[[email protected] local]# ./mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ ==>5.7执行初始化命令
2018-12-10T11:37:30.625023Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-12-10T11:37:30.625070Z 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 mode in a future release.
2018-12-10T11:37:30.625074Z 0 [Warning] NO_AUTO_CREATE_USER sql mode was not set.
2018-12-10T11:37:32.454989Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-12-10T11:37:32.659920Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-12-10T11:37:32.749779Z 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: fb994d89-fc6f-11e8-ab5f-4e052dd49fa2.
2018-12-10T11:37:32.765740Z 0 [Warning] Gtid table is not ready to be used. Table mysql.gtid_executed cannot be opened.
2018-12-10T11:37:32.766627Z 1 [Note] A temporary password is generated for [email protected]: dsqO!0eNa>V2  ==>注意这个是初始的root密码

5.设置开机自动启动脚本

复制启动脚本到/etc/rc.d/init.d/ 目录下并命名为mysqld,确认这个脚本具备X权限,若无执行 chmod 加权限

[[email protected] local]# cp mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
[[email protected] local]# ll /etc/rc.d/init.d/mysqld
-rwxr-xr-x. 1 root root 10886 Dec 10 19:49 /etc/rc.d/init.d/mysqld

把mysqld服务加入到系统服务

[[email protected] local]# chkconfig --add mysqld
[[email protected] local]# chkconfig --list | grep mysqld

Note: This output shows SysV services only and does not include native
      systemd services. SysV configuration data might be overridden by native
      systemd configuration.

      If you want to list systemd services use systemctl list-unit-files.
      To see services enabled on particular target use
      systemctl list-dependencies [target].

mysqld             0:off    1:off    2:on    3:on    4:on    5:on    6:off  ==>服务已生效

7.启动数据库服务

[[email protected] local]# systemctl start mysqld
[[email protected] local]# systemctl status mysqld
mysqld.service - LSB: start and stop MySQL
   Loaded: loaded (/etc/rc.d/init.d/mysqld)
   Active: active (running) since Mon 2018-12-10 20:00:22 CST; 8s ago   ==>服务一启动
  Process: 33307 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/mysqld.service
           ├─33318 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --p...
           └─33522 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/...

Dec 10 20:00:22 localhost.localdomain mysqld[33307]: Starting MySQL.. SUCCESS!
Dec 10 20:00:22 localhost.localdomain systemd[1]: Started LSB: start and stop MySQL.

8.登入数据库修改密码,并设置允许远程登入

[[email protected] local]# /usr/local/mysql/bin/mysql -uroot -pdsqO!0eNa>V2
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 5
Server version: 5.7.16

Copyright (c) 2000, 2016, 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> 

修改密码

mysql> SET PASSWORD FOR root@localhost=PASSWORD(redhat);
Query OK, 0 rows affected, 1 warning (0.01 sec)

设置主机可以远程登入

mysql> GRANT ALL PRIVILEGES ON *.* TO root@% IDENTIFIED BY redhat WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;  ==>刷新权限表

9.配置环境变量

[[email protected] local]# vim /etc/profile

# MySQL Environment Variable Settings
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin

[[email protected] local]# source /etc/profile

10.配置防火墙

[[email protected] local]# firewall-cmd --permanent --add-port=3306/tcp
success
[[email protected] local]# firewall-cmd --reload 
success

11.安装基本完成




以上是关于mysql5.7版本tar包手动安装---redhat7.0的主要内容,如果未能解决你的问题,请参考以下文章

1.RPM包安装mysql5.7

CentOs 7 安装mysql5.7.18(二进制版本)

debian下安装mysql

mysql5.7 tar包安装

MySQL5.7.19版本压缩包安装方式的一些坑

Centos 7 安装 和 卸载 Mysql5.7(压缩包)