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 -p‘dsqO!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的主要内容,如果未能解决你的问题,请参考以下文章