CentOS7 下安装 MySQL5.7 (包含mysql安装报错处理)

1、将mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar的安装包放到root跟目录下,安装版本可到MySQL官网去下载。

2、查看是否安装过MySQL,如果安装了,将其卸载。

rpm -qa|grep mysql
rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64  ##此处换成你系统中的MySQL版本

3、切换到安装包所在的目录解压安装包,记得解压名字换成自己的安装包名。这里是解压到了/usr/local/mysql目录下

[root@node21 software]# mkdir -p /usr/local/mysql
[root@localhost ~]# tar -xvf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar -C /usr/local/mysql   
mysql-community-common-5.7.24-1.el7.x86_64.rpm
mysql-community-minimal-debuginfo-5.7.24-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.24-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.24-1.el7.x86_64.rpm
mysql-community-embedded-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-5.7.24-1.el7.x86_64.rpm
mysql-community-devel-5.7.24-1.el7.x86_64.rpm
mysql-community-server-5.7.24-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm
mysql-community-client-5.7.24-1.el7.x86_64.rpm
mysql-community-server-minimal-5.7.24-1.el7.x86_64.rpm
mysql-community-test-5.7.24-1.el7.x86_64.rpm

4、进入安装目录,安装mysql-community-libs-5.7.24-1.el7.x86_64.rpm时会报错,

[root@localhost ~]# cd /usr/local/mysql/
[root@localhost mysql]# rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm 
警告:mysql-community-libs-5.7.24-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
	mysql-community-common(x86-64) >= 5.7.9 被 mysql-community-libs-5.7.24-1.el7.x86_64 需要
	mariadb-libs 被 mysql-community-libs-5.7.24-1.el7.x86_64 取代

 警告:红帽安装rpm安装MySQL时爆出警告:mysql-community-libs-5.7.22-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature,密钥 key ID 5072e1f5: NOKEY。

 原因:这是由于yum安装了旧版本的GPG keys造成的

 解决办法:后面加上  --force --nodeps 如:rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm --force --nodeps  从 RPM 版本 4.1 开始,在安装或升级软件包时会检查软件包的签名。

5、依次安装,提示被需要的依赖net-tools,yum install net-tools 即可。

[root@localhost mysql]# rpm -ivh mysql-community-client-5.7.24-1.el7.x86_64.rpm
[root@localhost mysql]# rpm -ivh mysql-community-devel-5.7.24-1.el7.x86_64.rpm 

6、继续安装。。发现有需要的依赖,所以我们先安装依赖

[root@localhost mysql]# rpm -ivh mysql-community-server-5.7.24-1.el7.x86_64.rpm 
警告:mysql-community-server-5.7.24-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
	mysql-community-common(x86-64) = 5.7.24-1.el7 被 mysql-community-server-5.7.24-1.el7.x86_64 需要
[root@localhost mysql]# rpm -ivh mysql-community-common-5.7.24-1.el7.x86_64.rpm 
##此安装会报错
##类似这样	file /usr/share/mysql/charsets/swe7.xml from install of mysql-community-common-5.7.24-1.el7.x86_64 co86_64
##这是由于和系统中的mariadb有冲突

7、检测出和mariadb有冲突,我们找出系统自带的mariadb,然后强制卸载。之后便可以继续正常安装。

[root@localhost mysql]# rpm -qa |grep mariadb
mariadb-libs-5.5.41-2.el7_0.x86_64
[root@localhost mysql]# rpm -e --nodeps mariadb-libs-5.5.41-2.el7_0.x86_64
[root@localhost mysql]# rpm -ivh mysql-community-common-5.7.24-1.el7.x86_64.rpm 
[root@localhost mysql]# rpm -ivh mysql-community-server-5.7.24-1.el7.x86_64.rpm 
[root@localhost mysql]# rpm -ivh mysql-community-embedded-5.7.24-1.el7.x86_64.rpm
[root@localhost mysql]# rpm -ivh mysql-community-embedded-compat-5.7.24-1.el7.x86_64.rpm 
[root@localhost mysql]# rpm -ivh mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm 

8、初始化数据库,为了保证数据库目录为与文件的所有者为 mysql 登陆用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化mysqld --initialize --user=mysql

9、如果是以 mysql 身份运行,则可以去掉 --user 选项。

另外 --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登陆后你需要设置一个新的密码,而使用 --initialize-insecure 命令则不使用安全模式,则不会为 root 用户生成一个密码。

这里演示使用的 --initialize 初始化,会生成一个 root 账户密码,密码在log文件里,红色区域的就是自动生成的密码

mysql配置文件在/etc/my.cnf,里面指明了数据目录,日志位置,root@localhost: q_0D7w7rM6k%为临时密码。

启动数据库服务,登录数据库,输入临时密码。

[root@localhost mysql]# mysqld --initialize --user=mysql
[root@localhost mysql]# cat /var/log/mysqld.log  ##查看日志密码
2019-02-21T10:47:27.513140Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2019-02-21T10:47:27.885717Z 0 [Warning] InnoDB: New log files created, LSN=45790
2019-02-21T10:47:27.942033Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2019-02-21T10:47:28.012026Z 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: 14ca745e-35c6-11e9-84b4-000c29a2ec2e.
2019-02-21T10:47:28.024617Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2019-02-21T10:47:28.030274Z 1 [Note] A temporary password is generated for root@localhost: q_0D7w7rM6k%
[root@localhost mysql]# service mysqld start  ##启动数据库
[root@localhost mysql]# mysql -u root -p   
Enter password: 

10、数据库设置;

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; ##设置MySQL密码
mysql> show databases;  ##查看数据库
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

使用mysql数据库,查看User表。

mysql> use mysql;   ##使用mysql数据库
mysql> select User,host,authentication_string from user; ## 查看User表
+---------------+-----------+-------------------------------------------+
| User          | host      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+---------------+-----------+-------------------------------------------+
3 rows in set (0.01 sec)

修改user表,把Host表内容修改为%

mysql> update user set host='%' where host='localhost';

删除root用户的其他host

mysql> delete from user where User != 'root';

刷新退出

mysql> flush privileges;
mysql> exit;

参考:https://www.cnblogs.com/frankdeng/p/9017384.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章