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;