centos7 .*tar包安装 MySQL5.7

本文详细介绍了在Linux系统中,如何通过源码和二进制文件两种方式安装MySQL5.6,包括卸载自带的MariaDB,创建用户和组,下载安装包,初始化数据库,设置开机启动,修改配置文件,获取并修改初始密码,以及添加远程访问权限等步骤。同时,文章还提到了在安装过程中可能遇到的问题及其解决方案,如权限错误、密码重置等。
摘要由CSDN通过智能技术生成

 

 

①源码安装,优点是安装包比较小,只有十多M,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错;

②使用官方编译好的二进制文件安装,优点是安装速度快,安装步骤简单,缺点是安装包很大,300M左右。以下介绍linux使用官方编译好的二进制包安装mysql。

到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)

下载地址:https://www.mysql.com/downloads/
选择community server

点击DOWLOAD
选择版本,当前选择的5.6版本

点击下载mysql-5.6.38-linux-glibc2.12-i686.tar.gz
选择no thanks

一、CentOS7.4系统自带mariadb

# 查看系统自带的Mariadb
[root@vmtest ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
 
# 卸载系统自带的Mariadb
[root@vmtest ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
 
# 删除etc目录下的my.cnf
[root@vmtest ~]# rm /etc/my.cnf

二、检查mysql是否存在

# 检查mysql是否存在
[root@VMTest ~]# rpm -qa | grep mysql
[root@VMTest ~]#

三、查看用户和组是否存在

1)检查mysql组合用户是否存在

# 检查mysql组和用户是否存在,如无则创建
[root@VMTest ~]# cat /etc/group | grep mysql
[root@VMTest ~]# cat /etc/passwd | grep mysql
# 查询全部用户(只是做记录,没必要执行)
[root@VMTest ~]# cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F ":" '{print $1 "|" $3 "1" $4}' | more
root|010
sync|510
mysql|99711001

2)若不存在,则创建mysql组和用户

# 创建mysql用户组
[root@VMTest ~]# groupadd mysql
 
# 创建一个用户名为mysql的用户,并加入mysql用户组
[root@VMTest ~]# useradd -g mysql mysql
 
# 制定password 为111111
[root@VMTest ~]# passwd mysql
Changing password for user mysql.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.

四、下载mysql的tar包

https://dev.mysql.com/downloads/mysql/5.7.html#downloads
  • 1

五、上传第四步下载的mysql TAR包到

# 进入/usr/local/src文件夹
[root@VMTest ~]# cd /usr/local/src/
 
# 上传mysql TAR包
[root@VMTest src]# rz
 
# 解压tar文件
[root@VMTest src]# tar xvf mysql-5.7.22-el7-x86_64.tar
 
# 解压mysql-5.7.22-el7-x86_64.tar.gz
[root@VMTest src]# tar -zxvf mysql-5.7.22-el7-x86_64.tar.gz
 
#复制解压后的mysql目录到系统的本地软件目录:
cp mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql -r
注意:目录结尾不要加/

# 解压后的文件移动到/usr/local文件夹
[root@VMTest src]# mv mysql-5.7.22-el7-x86_64 /usr/local
 
# 进入/usr/local下,修改为mysql
[root@VMTest src]# cd /usr/local
[root@VMTest local]# mv mysql-5.7.22-el7-x86_64 mysql

六、更改所属的组和用户

# 更改所属的组和用户
[root@VMTest local]# chown -R mysql mysql/
[root@VMTest local]# chgrp -R mysql mysql/
[root@VMTest local]# cd mysql/
 
[root@VMTest mysql]# mkdir data
 
[root@VMTest mysql]# chown -R mysql:mysql data

七、进入mysql文件夹,并安装mysql(初始化数据库)

这一点比较坑,网上的教程大多是mysql_install_db 方式安装的,这一步也是遇到问题最最多的,折腾了好久,但是mysql_install_db 命令是不推荐的,也提示使用mysqld来安装

--initialize用于“ 默认安全 ”安装(即包括生成随机初始root密码)。

使用 --initialize-insecure选项,不会 root生成密码,数据目录的初始化可能会失败,因为系统中缺少一些必需的软件库。

# 进入mysql
[root@VMTest etc]# cd /usr/local/mysql/
 
# 安装mysql
[root@VMTest mysql]# bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
or(推荐):
[root@VMTest mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
 
2018-07-04 15:46:02 [WARNING] 5mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2018-07-04 15:46:05 [WARNING] The bootstrap log isn't empty:
2018-07-04 15:46:05 [WARNING] 2018-07-04T15:46:02.728710Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead
2018-07-01T15:46:02.729161Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2018-07-04 T15:46:02.729167Z 0 [Warning] Changed limits: table_open_cache: 407 (requested 2000)

添加开机启动,把启动脚本放到开机初始化目录

[root@VMTest mysql]# cp ./support-files/mysql.server /etc/init.d/mysqld
[root@VMTest mysql]# chown 777 /etc/my.cnf
[root@VMTest mysql]# chmod +x /etc/init.d/mysqld

创建默认的SSL和RSA文件:(这里仅做记录,不必执行)

./bin/mysql_ssl_rsa_setup

八、在/etc下创建my.cnf文件

# 进入/etc文件夹下
[root@VMTest mysql]# cd /etc
 
# 创建my.cnf文件
[root@VMTest etc]# touch my.cnf
 
# 编辑my.cnf
[root@VMTest etc]# vim my.cnf

1)my.cnf添加如下内容:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
 
[mysqld]
# 设置3306端口
port = 3306
 
# 设置mysql的安装目录
basedir=/usr/local/mysql
 
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
 
# 允许最大连接数
max_connections=200
 
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
 
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M

2)查看my.cnf内容

# 查看my.cnf文件
[root@VMTest mysql]# cat /etc/my.cnf

九、启动mysql

# 启动mysql
[root@VMTest mysql]# /etc/init.d/mysqld start
or
[root@VMTest mysql]# ./mysqld --defaults-file=/etc/my.cnf --user=root
MySQL manager or server PID file could not be found! [FAILED]

解决:

# 1、查看进程
[root@VMTest mysql]# ps aux|grep mysql
root 10031 0.0 0.1 113264 1616 pts/0 S 14:36 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/iZ2ze3hm3gyjyjz628l7rgZ.pid
mysql 10220 0.0 19.1 1140876 195072 pts/0 Sl 14:36 0:02 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=iZ2ze3hm3gyjyjz628l7rgZ.err --pid-file=/usr/local/mysql/data/iZ2ze3hm3gyjyjz628l7rgZ.pid --port=3306
root 10421 0.0 0.0 112660 968 pts/0 R+ 15:51 0:00 grep --color=auto mysql
 
# 2、杀死进程
[root@VMTest mysql]# kill -9 10031
[root@VMTest mysql]# kill -9 10220
 
# 3、重启mysql
[root@VMTest mysql]# /etc/init.d/mysqld restart
Shutting down MySQL..
Starting MySQL.

十、设置开机启动

#设置开机启动
[root@VMTest mysql]# chkconfig --level 35 mysqld on
[root@VMTest mysql]# chkconfig --list mysqld
 
[root@VMTest mysql]# chmod +x /etc/rc.d/init.d/mysqld
[root@VMTest mysql]# chkconfig --add mysqld
[root@VMTest mysql]# chkconfig --list mysqld
[root@VMTest mysql]# service mysqld status
SUCCESS! MySQL running (4475)

十一、修改配置文件

# 进入/etc/profile文件夹
[root@VMTest mysql]# vim /etc/profile

1)修改/etc/profile,在最后添加如下内容

# 修改/etc/profile文件
#set mysql environment
export PATH=$PATH:/usr/local/mysql/bin
 
# 使文件生效
[root@VMTest mysql]# source /etc/profile

十二、获得mysql初始密码

# 1、获得mysql初始密码
[root@VMTest bin]# cat /root/.mysql_secret
# Password set for user 'root@localhost' at 2017-04-17 17:40:02
_pB*3VZl5T<6
 
# 2、修改密码
[root@VMTest bin]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 53
Server version: 5.7.22 MySQL Community Server (GPL)
 
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> set PASSWORD = PASSWORD('root');
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

十三、添加远程访问权限

# 添加远程访问权限
mysql> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
 
mysql> update user set host='%' where user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
 
mysql> select host,user from user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| % | root |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+---------------+
3 rows in set (0.00 sec)

十四、重启mysql生效

# 重启mysql
[root@VMTest bin]# /etc/init.d/mysqld restart
Shutting down MySQL..
Starting MySQL.
  • 1
  • 2
  • 3
  • 4

备注:

由于安装在/usr/local下面的mysql,因此可以在任何文件夹启动mysql
 
若安装在别的文件夹,请执行以下命令:
# 为了在任何目录下可以登录mysql
ln -s /你的mysql路径/mysql /usr/local/mysql

不关闭防火墙,外网不能访问

CentOS 7.0默认使用的是firewall作为防火墙

查看防火墙状态

firewall-cmd --state
  • 1

停止firewall

systemctl stop firewalld.service
  • 1

禁止firewall开机启动

systemctl disable firewalld.service 
  • 1

可能遇到的问题

重置密码遇到ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using passwor:yes)问题

一般这个错误是由密码错误引起,解决的办法自然就是重置密码。

假设我们使用的是root账户。

1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:

vim /etc/my.cnf(注:windows下修改的是my.ini)

在[mysqld]后面任意一行添加 skip-grant-tables用来跳过密码验证的过程,如下图所示:

保存文档并退出

2.接下来我们需要重启MySQL:

/etc/init.d/mysql restart(有些用户可能需要使用/etc/init.d/mysqld restart)

3.重启之后输入mysql即可进入mysql。

4.接下来就是用sql来修改root的密码

进入到终端当中,敲入  mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中

(5.7.11以前) > update user set password=password("123456") where user="root";

(5.7.11 或者以后)> update user set authentication_string=password("123456") where user="root";

在这儿我是用的是:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'HuaZai12345!';

mysql> flush privileges;
mysql> quit

注意:如果在执行该步骤的时候出现 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 错误。则执行下  flush privileges 命令,再执行该命令即可。

到这里root账户就已经重置成新的密码了。

5.编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。大功告成!

网上有很多关于这个问题的解决说明,很多刚接触的朋友可能比较迷惑的是在自己的平台上找不到my.cnf或者my.ini文件,如果你是Linux,使用如下方式可以搜索到

whereis my.cnf
  • 1

至于windows平台,去安装目录下找一下my.ini吧。

ERROR 1133 (42000): Can’t find any matching row in the user table

1、问题描述
使用 set password for 'root'@'localhost'=password('MyNewPass4!');命令修改mysql数据库root用户密码提示 ERROR 1133 (42000): Can't find any matching row in the user table错误

2、主要原因
错误提示的字面意思:在用户表中找不到任何匹配的行

登录mysql执行以下命令

use mysql;
select Host,User from user;

主要原因是修改密码的条件不否

3、解决办法
set password for 'root'@'localhost'=password('MyNewPass4!');代码中的 localhost修改 %,与数据库Host字段值一致 set password for 'root'@'%'=password('MyNewPass4!');刷新 flush privileges;

参考:https://blog.csdn.net/justlpf/article/details/82905963
https://blog.csdn.net/weixin_38281964/article/details/82016431
https://www.cnblogs.com/code-changeworld/p/4364645.html

问题参考:https://blog.csdn.net/vv19910825/article/details/82979563
https://blog.csdn.net/hello_world_qwp/article/details/80346904
https://blog.csdn.net/github_38336924/article/details/82702017
https://blog.csdn.net/memory6364/article/details/82426052

 

 

### 回答1: 安装步骤如下: 1. 首先,确保CentOS 7操作系统已经安装并且是最新版本。 2. 确认已经安装了必要的软件括GCC、C++、CMake、GMP、MPFR和MPC库:sudo yum install -y gcc-c++ cmake ncurses-devel libaio-devel openssl-devel zlib-devel libgcrypt-devel libedit-devel libxml2-devel libxslt-devel libicu-devel libcurl-devel libpng-devel libjpeg-devel libzip-devel bzip2-devel readline-devel systemd-devel 3. 下载MySQL 5.7.34 tar:wget -c https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.34.tar.gz 4. 解压tartar -zxvf mysql-5.7.34.tar.gz 5. 进入解压后的目录:cd mysql-5.7.34 6. 创建MySQL安装目录:sudo mkdir /usr/local/mysql 7. 为MySQL安装目录赋予权限:sudo chown -R root:root /usr/local/mysql 8. 创建MySQL数据目录:sudo mkdir /var/mysql 9. 为MySQL数据目录赋予权限:sudo chown -R mysql:mysql /var/mysql 10. 在MySQL安装目录下创建编译文件夹:cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/var/mysql \ -DWITH_BOOST=/opt/boost \ -DWITH_SYSTEMD=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_FEDERATED_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITH_SSL=system \ -DENABLED_LOCAL_INFILE=1 \ -DSYSCONFDIR=/etc \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_unicode_ci . 11. 编译:make 12. 安装:sudo make install 13. 初始化MySQL数据库:sudo /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=/var/mysql 14. 启动MySQL服务:sudo systemctl start mysql 15. 修改root用户密码:sudo /usr/local/mysql/bin/mysqladmin -u root password 'new_password' 至此,MySQL 5.7.34的安装就完成了。 ### 回答2: CentOS 7 是一款非常稳定和可靠的操作系统,然而,对于一些新手来说,在安装 MySQL 时可能会遇到一些困难。如果您想在 CentOS 7 上安装 MySQL 5.7.34,则可以按照以下步骤进行操作: 步骤一:检查 tar 安装 MySQL 之前,您需要从官方网站下载 MySQL 5.7.34 的tar。请确保下载的tar处于完好无损的状态,可以使用以下命令进行检查: $ md5sum mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz (替换为您下载的文件名) 如果输出结果与官方网站上的MD5值匹配,则说明下载的文件没有被损坏或者篡改。 步骤二:解压 tar 接下来,您需要使用以下命令解压tar: $ tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz 解压完成后进入解压文件夹: $ cd mysql-5.7.34-linux-glibc2.12-x86_64 步骤三:创建 MySQL 用户组和用户 为了保证 MySQL 运行的安全性,我们需要创建一个新的 MySQL 用户组和用户。可以使用以下命令来创建: $ groupadd mysql $ useradd -r -g mysql -s /bin/false mysql 步骤四:安装 MySQL 完成以上步骤之后,就可以使用以下命令执行 MySQL安装: $ mkdir -p /usr/local/mysql $ chown -R mysql:mysql /usr/local/mysql $ ./bin/mysqld --initialize --user=mysql $ ./bin/mysql_ssl_rsa_setup 执行完成后,MySQL 将会自动在 /usr/local/mysql/data 目录下生成root 用户的初始密码,您可以使用以下命令查看: $ cat /usr/local/mysql/data/*-host.err | grep "A temporary password" 步骤五:启动 MySQL 启动 MySQL 可以使用以下命令: $ ./support-files/mysql.server start 您也可以将 MySQL 自动启动脚本添加到系统服务中,使 MySQL 在系统启动时自动启动: $ cp support-files/mysql.server /etc/init.d/mysqld $ chkconfig --add mysqld $ chkconfig --level 345 mysqld on 步骤六:配置 MySQL 启动 MySQL 后,您需要修改 root 用户的密码,并且修改 MySQL 的配置文件,使 MySQL 具有更好的性能和安全性。 MySQL 配置文件位于 /etc/my.cnf 或者 /usr/local/mysql/etc/my.cnf。您可以根据需要修改配置文件来改变 MySQL 的运行参数。 总结 通过以上步骤,您可以在 CentOS 7 上安装 MySQL 5.7.34,并且调整 MySQL 的性能和安全性。这些步骤都相对简单,即使是 Linux 新手也能够轻松上手,希望本文能对您在 CentOS 7 上安装 MySQL 5.7.34 有所帮助! ### 回答3: 首先,我们需要从官网(https://dev.mysql.com/downloads/mysql/5.7.html)下载MySQL 5.7.34的tar,并解压至指定目录。 1. 解压 下载好tar后,我们需要将它解压到指定的目录中,这里以/opt目录为例: ``` tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz -C /opt/ ``` 解压完毕后,我们可以看到/opt目录下多了一个mysql-5.7.34-linux-glibc2.12-x86_64目录。 2. 创建mysql用户组和用户 创建mysql用户组: ``` groupadd mysql ``` 创建mysql用户: ``` useradd -g mysql mysql ``` 3. 配置MySQL 创建一个新的MySQL配置文件my.cnf: ``` vi /etc/my.cnf ``` 在my.cnf中增加以下内容: ``` [mysqld] basedir=/opt/mysql-5.7.34-linux-glibc2.12-x86_64 datadir=/opt/mysql-5.7.34-linux-glibc2.12-x86_64/data socket=/opt/mysql-5.7.34-linux-glibc2.12-x86_64/mysql.sock user=mysql ``` 其中: - basedir:MySQL安装目录; - datadir:存放数据库文件的目录; - socket:MySQL使用的套接字文件; - user:运行MySQL服务的用户。 4. 初始化MySQL 使用mysqld_safe初始化MySQL: ``` cd /opt/mysql-5.7.34-linux-glibc2.12-x86_64 ./bin/mysqld_safe --user=mysql --datadir=/opt/mysql-5.7.34-linux-glibc2.12-x86_64/data & ``` 初始化完成后会生成一个临时密码,我们需要将它保存下来备用。 5. 修改root密码 登录MySQL,并修改root密码: ``` ./bin/mysql -uroot -p mysql> SET PASSWORD = PASSWORD('new password'); ``` 其中new password为新密码。 6. 配置systemd启动项 为了方便管理,我们可以将MySQL配置为systemd服务。 创建一个mysql.service文件: ``` vi /usr/lib/systemd/system/mysql.service ``` 输入以下内容: ``` [Unit] Description=MySQL After=network.target [Service] Type=forking ExecStart=/opt/mysql-5.7.34-linux-glibc2.12-x86_64/bin/mysqld_safe --user=mysql --datadir=/opt/mysql-5.7.34-linux-glibc2.12-x86_64/data ExecStop=/opt/mysql-5.7.34-linux-glibc2.12-x86_64/bin/mysqladmin -u root -p shutdown [Install] WantedBy=multi-user.target ``` 保存并退出。 启动MySQL服务: ``` systemctl start mysql ``` 设置MySQL自启动: ``` systemctl enable mysql ``` 7. 测试MySQL 使用以下命令测试MySQL是否正常运行: ``` ./bin/mysql -uroot -p ``` 输入之前设置的root密码,成功连接则说明MySQL安装成功。 以上就是在CentOS 7中使用tar安装MySQL 5.7.34的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值