Centos7安装Mysql8

第一次装的时候感觉很简单没有记录,第二次装的时候报了很多错误!!!!

注意如果服务器有自带的mysql 或者 mariadb 一定要先进行卸载,怎么卸载看下面

服务器版本如下:

[root@centos7 ~]# cat /etc/redhat-release 
CentOS Linux release 7.5.1804 (Core) 

基本命令

启动 : systemctl start mysqld
重启: systemctl restart mysqld
查看状态: systemctl status mysqld

安装步骤

第一步,清理环境

1. 首先,查看系统是否已经安装了mysql数据库

rpm -qa | grep mysql

[root@localhost etc]# rpm -qa | grep mysql
mysql-community-libs-8.0.16-2.el7.x86_64
mysql-community-common-8.0.16-2.el7.x86_64
mysql-community-client-8.0.16-2.el7.x86_64
mysql80-community-release-el7-3.noarch
mysql-community-server-8.0.16-2.el7.x86_64
2. 查询到已安装的MySQL库后,执行以下命令依次卸载

yum remove mysql-xxx-xxx
若没有查询后,没有安装Mysql库,可直接跳过此步。

3. 删除mysql的配置文件(MySQL卸载不会自动删除配置文件,需自行清理)

首先使用如下命令查找出所用的配置文件
find / -name mysql

[root@localhost etc]# find / -name mysql
/etc/logrotate.d/mysql
/var/lib/docker/overlay2/a74267a6cde69551beede82788b48f1430f6ac88e4c7a8cdf9bcf16b2125aac6/diff/etc/mysql
/var/lib/docker/overlay2/a74267a6cde69551beede82788b48f1430f6ac88e4c7a8cdf9bcf16b2125aac6/diff/usr/include/mysql
/var/lib/docker/overlay2/a74267a6cde69551beede82788b48f1430f6ac88e4c7a8cdf9bcf16b2125aac6/diff/usr/include/mysql/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql

根据需求使用以下命令 依次 对配置文件进行删除

rm -rf /var/lib/mysql

二、删除MariaDB的文件

由于 在CentOS中默认安装有MariaDB,所以如果我们不删除MariaDB文件的话,安装mysql时可能会发生冲突。冲突信息如下:

[root@localhost yum.repos.d]# yum install mysql-community-server.x86_64 
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * epel: mirrors.ustc.edu.cn
 * extras: mirrors.163.com
 * updates: centos.ustc.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package mariadb-server.x86_64 1:5.5.52-1.el7 will be obsoleted
--> Processing Dependency: mariadb-server for package: akonadi-mysql-1.9.2-4.el7.x86_64
---> Package mysql-community-server.x86_64 0:5.7.19-1.el7 will be obsoleting
--> Processing Dependency: mysql-community-common(x86-64) = 5.7.19-1.el7 for package: mysql-community-server-5.7.19-1.el7.x86_64
--> Processing Dependency: mysql-community-client(x86-64) >= 5.7.9 for package: mysql-community-server-5.7.19-1.el7.x86_64
--> Running transaction check
---> Package mariadb.x86_64 1:5.5.52-1.el7 will be obsoleted
---> Package mariadb-server.x86_64 1:5.5.52-1.el7 will be obsoleted
--> Processing Dependency: mariadb-server for package: akonadi-mysql-1.9.2-4.el7.x86_64
---> Package mysql-community-client.x86_64 0:5.7.19-1.el7 will be obsoleting
--> Processing Dependency: mysql-community-libs(x86-64) >= 5.7.9 for package: mysql-community-client-5.7.19-1.el7.x86_64
---> Package mysql-community-common.x86_64 0:5.7.19-1.el7 will be installed
--> Running transaction check
---> Package mariadb-libs.x86_64 1:5.5.52-1.el7 will be obsoleted
--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: perl-DBD-MySQL-4.023-5.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18()(64bit) for package: 1:qt-mysql-4.8.5-13.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: perl-DBD-MySQL-4.023-5.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: 2:postfix-2.10.1-6.el7.x86_64
--> Processing Dependency: libmysqlclient.so.18(libmysqlclient_18)(64bit) for package: 1:qt-mysql-4.8.5-13.el7.x86_64
---> Package mariadb-server.x86_64 1:5.5.52-1.el7 will be obsoleted
--> Processing Dependency: mariadb-server for package: akonadi-mysql-1.9.2-4.el7.x86_64
---> Package mysql-community-libs.x86_64 0:5.7.19-1.el7 will be obsoleting
--> Running transaction check
---> Package mariadb-server.x86_64 1:5.5.52-1.el7 will be obsoleted
--> Processing Dependency: mariadb-server for package: akonadi-mysql-1.9.2-4.el7.x86_64
---> Package mysql-community-libs-compat.x86_64 0:5.7.19-1.el7 will be obsoleting
--> Finished Dependency Resolution
Error: Package: akonadi-mysql-1.9.2-4.el7.x86_64 (@anaconda)
           Requires: mariadb-server
           Removing: 1:mariadb-server-5.5.52-1.el7.x86_64 (@anaconda)
               mariadb-server = 1:5.5.52-1.el7
           Obsoleted By: mysql-community-server-5.7.19-1.el7.x86_64 (mysql57-community)
               Not found
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

1.使用rpm 命令查找出要删除的mariadb文件,命令如下

rpm -pa | grep mariadb

可能出现结果

mariadb-libs-5.5.56-2.el7.x86_64

删除上面的程序

yum -y remove mariadb-libs.x86_64

至此,原有的mysql和mariadb数据库就删除了

三、安装mysql

  • contos7默认安装了mariadb数据库,这里把他移除:yum remove mariadb-libs.x86_64
  • 创建文件目录 mkdir /etc/mysql

1、 安装mysql官网提供的mysql repo源**

网址:https://dev.mysql.com/downloads/repo/yum/ 操作如下:

image.png

2. 把这个rpm文件下载下来放到服务器上,或者在linux系统中通过wget命令下载

wget http://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

下载完成后使用yum命令本地安装yum源

3. 安装mysql80-community-release-el7-1.noarch.rpm包。使用命令:

yum localinstall mysql80-community-release-el7-1.noarch.rpm
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
执行完毕后使用下面的命令检查是否安装成功
yum repolist enabled | grep "mysql.*-community.*"

看到类似下图说明安装成功


image.png
安装MySQL

使用命令yum install -y mysql-community-server进行安装

image.png

4. 使用命令 “yum install mysql-community-server”安装mysql。大概有1个多G,请耐心等待安装完成

默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid

启动MySQL服务

使用systemctl start mysqld命令启动
使用systemctl status mysqld查看服务启动状态

image.png

开机启动

打上下面这两条命令就行了,不行就不行了..看不懂
systemctl enable mysqld
systemctl daemon-reload

. 修改root默认密码

两种方式第二种在下面我用的第一种
在修改密码之前要先做一件事,就是找到mysql的配置文件(vim /etc/my.cnf)↓
把密码的加密方式改成之前版本的,8.0版本更换了密码的加密方式,我们就先用旧的..


image.png

把上面图片里这一行信息前面的"#"删掉,改完之后记得重启服务(systemctl restart mysqld)

修改密码

1.刚刚启动成功之后, 用命令查看默认密码并且登录
查看:cat /var/log/mysqld.log | grep password
登陆:mysql -u root -p 然后输入密码

  1. 修改密码
    set global validate_password.policy=0;
    set global validate_password.length=1;
    ALTER USER "root"@"localhost" IDENTIFIED BY "123456"; // 新密码为123456


    image
  2. exit 退出 mysql -u root -p 然后输入密码即可登录

授权远程访问

首先确保关闭了防火墙 并重启mysql。
一般不允许root用户进行远程登录,我先记录一下命令,这个是root远程登录授权的命令

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '密码' WITH GRANT OPTION;

远程访问

  1. 选择数据库 use mysql show tables;可以看到很多表
mysql> use mysql
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| component                 |
| db                        |
| default_roles             |
| engine_cost               |
| func                      |
| general_log               |
| global_grants             |
| gtid_executed             |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| innodb_index_stats        |
| innodb_table_stats        |
| password_history          |
| plugin                    |
| procs_priv                |
| proxies_priv              |
| role_edges                |
| server_cost               |
| servers                   |
| slave_master_info         |
| slave_relay_log_info      |
| slave_worker_info         |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
33 rows in set (0.00 sec)

mysql> 
  1. 修改连接规则:host表示允许哪个ip来连接,user表示哪个数据库。例如 mysql –uroot –p 连的就是叫root数据库。
  2. 查看规则 select host,user from user \G; 修改规则 update user set host= '%' where user = 'root';


    image
mysql>  update user set host= '%' where user = 'root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select host,user from user \G;
*************************** 1. row ***************************
host: %
user: root
*************************** 2. row ***************************
host: localhost
user: mysql.infoschema
*************************** 3. row ***************************
host: localhost
user: mysql.session
*************************** 4. row ***************************
host: localhost
user: mysql.sys
4 rows in set (0.00 sec)

ERROR: 
No query specified

mysql> 
  1. mysql5.7.6之后就修改了加密规则,我这里是mysql8.0.12 所以需要更改加密方式。(由于上面已经修改了配置文件所以这种方式并未尝试)
    update user set plugin='mysql_native_password' where user ='root';
  2. 刷新权限 flush privileges;
  3. 测试外网连接mysql服务器。
    (如果外网连接失败的话,先按照【重置密码】执行一遍,再执行【修改密码】,只是ALTER USER "root"@"localhost" IDENTIFIED BY "1234";要替换成ALTER USER "root"@"%" IDENTIFIED BY "1234";)


    image.png

重置密码

  1. 开启免密码登陆 修改my.cnf文件 默认在/etc/my.cnf。
    vim /etc/my.cnf 在【mysqld】模块下面添加:skip-grant-tables 保存退出。
  2. 重启服务,使配置生效 。 service mysqld restart
  3. 登陆 mysql -u root -p //不输入密码直接敲回车键
  4. 选择数据库 use mysql 把密码置空(因为免密登陆时不能直接修改密码)
    update user set authentication_string = '' where user = 'root';
  5. 退出 quit 把/etc/my.cnf免密删掉。 重启服务 service mysqld restart
  6. 登陆 mysql -u root -p //直接敲回车键,因为刚刚置空密码了。
  7. 和上面修改密码的步骤一样,重复一遍就好了~ 哈哈!

卸载mysql

首先 , 停止mysql service mysqld stop
总共分两步: 1.卸载mysql组件 2.删除相关文件夹

【第一步卸载mysql组件】

【 查看MySQL组件 】
[root@localhost ~]# rpm -qa | grep -i mysql
mysql-community-libs-8.0.12-1.el7.x86_64
mysql-community-common-8.0.12-1.el7.x86_64
mysql-community-client-8.0.12-1.el7.x86_64
mysql-community-server-8.0.12-1.el7.x86_64
【删除】
[root@localhost ~]# rpm -ev mysql-community-server-8.0.12-1.el7.x86_64
Preparing packages...
mysql-community-server-8.0.12-1.el7.x86_64
warning: /etc/my.cnf saved as /etc/my.cnf.rpmsave
【删除】
[root@localhost ~]# rpm -ev mysql-community-client-8.0.12-1.el7.x86_64
Preparing packages...
mysql-community-client-8.0.12-1.el7.x86_64
【删除失败】
[root@localhost ~]# rpm -ev mysql-community-common-8.0.12-1.el7.x86_64
error: Failed dependencies:
    mysql-community-common(x86-64) >= 8.0.0 is needed by (installed) mysql-community-libs-8.0.12-1.el7.x86_64
【继续查看】
[root@localhost ~]# rpm -qa | grep -i mysql
mysql-community-libs-8.0.12-1.el7.x86_64
mysql-community-common-8.0.12-1.el7.x86_64
【删除】
[root@localhost ~]# rpm -e --noscripts mysql-community-libs-8.0.12-1.el7.x86_64
[root@localhost ~]# 
【删除】
[root@localhost ~]# rpm -e --noscripts mysql-community-common-8.0.12-1.el7.x86_64
[root@localhost ~]# 
【查看】
[root@localhost ~]# rpm -qa | grep -i mysql
[root@localhost ~]# 

【第二步:删除相关目录】

【查看】
[root@localhost ~]# find / -name mysql
/etc/mysql
/etc/selinux/targeted/active/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
【删除】
[root@localhost ~]# rm -rf /etc/mysql
[root@localhost ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql
[root@localhost ~]# rm -rf /var/lib/mysql
[root@localhost ~]# find / -name mysql
【再次检查,什么都没有说明卸载成功了】
[root@localhost ~]# rpm -qa | grep -i mysql
[root@localhost ~]#

注意如果卸载不掉用下面的方法卸载
一、如果是使用yum安装的mysql,使用如下命令进行卸载(不能确定使用何种方式安装的mysql情况下,按后续步骤一一进行处理即可):

# yum remove mysql mysql-server mysql-libs compat-mysql51
# rm -rf /var/lib/mysq
# rm /etc/my.cnf

使用rpm -qa|grep mysql命令来查看rpm方式安装的mysql,如果查询结果不为空,需要将这些rpm卸载掉。

#参考链接:
https://www.cnblogs.com/wlwl/p/9686809.html
https://my.oschina.net/liuyuantao/blog/1859577
https://blog.csdn.net/qq_39470733/article/details/80999080

注意参考:https://blog.csdn.net/chrisjingu/article/details/90291445

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,084评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,623评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,450评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,322评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,370评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,274评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,126评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,980评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,414评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,599评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,773评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,470评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,080评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,713评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,852评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,865评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,689评论 2 354

推荐阅读更多精彩内容