第一次装的时候感觉很简单没有记录,第二次装的时候报了很多错误!!!!
注意如果服务器有自带的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/ 操作如下:
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.*"
看到类似下图说明安装成功
安装MySQL
使用命令yum install -y mysql-community-server
进行安装
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
查看服务启动状态
开机启动
打上下面这两条命令就行了,不行就不行了..看不懂
systemctl enable mysqld
systemctl daemon-reload
. 修改root默认密码
两种方式第二种在下面我用的第一种
在修改密码之前要先做一件事,就是找到mysql的配置文件(vim /etc/my.cnf)↓
把密码的加密方式改成之前版本的,8.0版本更换了密码的加密方式,我们就先用旧的..
把上面图片里这一行信息前面的"#"删掉,改完之后记得重启服务(systemctl restart mysqld)
修改密码
1.刚刚启动成功之后, 用命令查看默认密码并且登录
查看:cat /var/log/mysqld.log | grep password
登陆:mysql -u root -p 然后输入密码
-
修改密码
set global validate_password.policy=0;
set global validate_password.length=1;
ALTER USER "root"@"localhost" IDENTIFIED BY "123456"; // 新密码为123456
- exit 退出 mysql -u root -p 然后输入密码即可登录
授权远程访问
首先确保关闭了防火墙 并重启mysql。
一般不允许root用户进行远程登录,我先记录一下命令,这个是root远程登录授权的命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '密码' WITH GRANT OPTION;
远程访问
- 选择数据库 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>
- 修改连接规则:host表示允许哪个ip来连接,user表示哪个数据库。例如 mysql –uroot –p 连的就是叫root数据库。
-
查看规则 select host,user from user \G; 修改规则 update user set host= '%' where user = 'root';
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>
- mysql5.7.6之后就修改了加密规则,我这里是mysql8.0.12 所以需要更改加密方式。(由于上面已经修改了配置文件所以这种方式并未尝试)
update user set plugin='mysql_native_password' where user ='root'; - 刷新权限 flush privileges;
-
测试外网连接mysql服务器。
(如果外网连接失败的话,先按照【重置密码】执行一遍,再执行【修改密码】,只是ALTER USER "root"@"localhost" IDENTIFIED BY "1234";要替换成ALTER USER "root"@"%" IDENTIFIED BY "1234";)
重置密码
- 开启免密码登陆 修改my.cnf文件 默认在/etc/my.cnf。
vim /etc/my.cnf 在【mysqld】模块下面添加:skip-grant-tables 保存退出。 - 重启服务,使配置生效 。 service mysqld restart
- 登陆 mysql -u root -p //不输入密码直接敲回车键
- 选择数据库 use mysql 把密码置空(因为免密登陆时不能直接修改密码)
update user set authentication_string = '' where user = 'root'; - 退出 quit 把/etc/my.cnf免密删掉。 重启服务 service mysqld restart
- 登陆 mysql -u root -p //直接敲回车键,因为刚刚置空密码了。
- 和上面修改密码的步骤一样,重复一遍就好了~ 哈哈!
卸载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