当前位置:首页 > Java技术 > Linux上安装MySQl超详细教程(CentOS系统)

Linux上安装MySQl超详细教程(CentOS系统)

2022年09月15日 23:25:00Java技术16

一、CentOS6.x 版本的yum镜像安装

1.如果你使用的是CentOS的简化版本,你是需要先安装yum
注:如果你的yum没有问题,请自行跳过此步yum的安装
2.如果你的yum出现了问题,你需要执行这五行命令
注:五行命令,五步 ,一步步复制操作即可

[root@master ~]# sed -i "s|enabled=1|enabled=0|g" /etc/yum/pluginconf.d/fastestmirror.conf
[root@master ~]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
[root@master ~]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo
[root@master ~]# yum clean all
[root@master ~]# yum makecache

注:这里使用的是阿里云,也就是国内代理,如果服务器是海外,则把第三条命令替换为官方Vault源(海外服务器用)

curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Official.repo`

二、yum联网安装MySQL

(一)直接安装

1.查看是否已经安装了mysql

[root@master ~]# rpm -qa|grep mysql #无输出则说明没有安装
rpm -e mysql        // 普通删除模式
rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

2.使用yum安装mysql
注:此方式只能安装mysql5.x版本,不能安装mysql的最新版本
(1)搜索mysql安装包,找到mysql-server.x86_64

[root@master ~]# yum search mysql

(2)安装mysql-server.x86_64

[root@master ~]# yum -y install mysql-server.x86_64 

(3)启动mysql服务

[root@master ~]# service mysqld start & chkconfig mysqld on

(4)启动mysql,直接在终端输入“mysql”

[root@master ~]# mysql

(5)执行以下命令为root用户设置权限

use mysql;
delete from user where 1=1;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;

注:mysql赋权操作说明

GRANT:赋权命令
ALL PRIVILEGES:当前用户的所有权限
ON:介词
*.*:当前用户对所有数据库和表的相应操作权限
TO:介词
'root’@’%’:权限赋给root用户,所有ip都能连接
IDENTIFIED BY ‘123456’:连接时输入密码,密码为123456
WITH GRANT OPTION:允许级联赋权

(二)间接安装

1.Linux 的 PMS 工具主流有两种。

对于基于 Red Hat 的发行版,其 PMS 工具为 rpm,对应的安装命令为 yum。 对于基于 Debian 的发行版,其 PMS
工具为 dpkg,对应的安装命令为 aptitude。 笔者的操作系统CentOS release 6.5 属于 Red
Hat,将使用后缀为 rpm 的安装包。如果读者使用的操作系统为 Ubuntu,需要选择后缀为 deb
的安装包。如果读者不知道如何分辨,可以输入以下命令来验证:yum

[root@master ~]# yum

如果输入 yum 之后,出现了一大串的说明文字,说明应该使用后缀为 rpm 的安装包。如果提示 yum 命令不存在,说明应该使用后缀为 deb 的安装包。

2.查看自己的Linux系统版本,找到对应linux的版本进行下载

[root@master ~]# cat /etc/redhat-release
CentOS release 6.5 (Final)

3.MySQL的下载地址:

MySQL的官方网址:https://www.mysql.com/
MySQL的版本选择地址:https://downloads.mysql.com/archives/community/
MySQL的rpm文件下载地址:https://dev.mysql.com/downloads/repo/yum/

4.进入MySQL官网选择Downloads

Linux上安装MySQl超详细教程(CentOS系统) _ JavaClub全栈架构师技术笔记
5.选择MySQL Community (GPL) Downloads

Linux上安装MySQl超详细教程(CentOS系统) _ JavaClub全栈架构师技术笔记6.选择MySQL Community Server

Linux上安装MySQl超详细教程(CentOS系统) _ JavaClub全栈架构师技术笔记

7.选择操作系统、系统的版本、MySQL版本

Linux上安装MySQl超详细教程(CentOS系统) _ JavaClub全栈架构师技术笔记
8.选择yum能够安装的rpm包

Linux上安装MySQl超详细教程(CentOS系统) _ JavaClub全栈架构师技术笔记
9.进入下载界面

Linux上安装MySQl超详细教程(CentOS系统) _ JavaClub全栈架构师技术笔记
10.下载完后得到后缀名为.rpm的文件, 复制下载文件的全名:mysql80-community-release-el6-4.noarch.rpm

Linux上安装MySQl超详细教程(CentOS系统) _ JavaClub全栈架构师技术笔记

11.下载MySQL源

[root@master ~]# wget https://dev.mysql.com/get/mysql80-community-release-el6-4.noarch.rpm

Linux上安装MySQl超详细教程(CentOS系统) _ JavaClub全栈架构师技术笔记

注:如果显示wget未找到命令,则需要先安装wget: yum -y install wget 然后再次执行上面命令

12.安装MySQL源

[root@master ~]# rpm -Uvh mysql80-community-release-el6-4.noarch.rpm
warning: mysql80-community-release-el6-4.noarch.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY
Preparing...                ########################################### [100%]
   1:mysql80-community-relea########################################### [100%]

检查是否安装成功:
执行成功后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo及 mysql-community-source.repo

[root@master ~]# cd /etc/yum.repos.d/
[root@master yum.repos.d]# ll
总用量 28
-rw-r--r--. 1 root root 1749 414 2021 CentOS-Base.repo
-rw-r--r--. 1 root root 1926 1127 2013 CentOS-Base.repo.backup
-rw-r--r--. 1 root root  638 1127 2013 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  630 1127 2013 CentOS-Media.repo
-rw-r--r--. 1 root root 3664 1127 2013 CentOS-Vault.repo
-rw-r--r--  1 root root 1628 111 02:24 mysql-community.repo
-rw-r--r--  1 root root 1700 111 02:24 mysql-community-source.repo

查看mysql相关资源:

[root@master yum.repos.d]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community   MySQL Connectors Community                     185
mysql-tools-community        MySQL Tools Community                          111
mysql80-community            MySQL 8.0 Community Server                     265

13.选择安装版本

当你使用此方法进行安装MySQL的时候,会默认安装mysql的最新稳定版本。如果这就是你想要安装的,那么你就可以忽略这步了。如果想要安装以前的版本,比如5.6或者5.5,那么就可以用下面的方法来配置了。

首先我们先查看MySQL的那些源被禁用或者启用了。

[root@master yum.repos.d]# yum repolist all | grep mysql
mysql-cluster-7.5-community        MySQL Cluster 7.5 Community    disabled
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community -  disabled
mysql-cluster-7.6-community        MySQL Cluster 7.6 Community    disabled
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community -  disabled
mysql-cluster-8.0-community        MySQL Cluster 8.0 Community    disabled
mysql-cluster-8.0-community-source MySQL Cluster 8.0 Community -  disabled
mysql-connectors-community         MySQL Connectors Community     enabled:   185
mysql-connectors-community-source  MySQL Connectors Community - S disabled
mysql-tools-community              MySQL Tools Community          enabled:   111
mysql-tools-community-source       MySQL Tools Community - Source disabled
mysql-tools-preview                MySQL Tools Preview            disabled
mysql-tools-preview-source         MySQL Tools Preview - Source   disabled
mysql57-community                  MySQL 5.7 Community Server     disabled
mysql57-community-source           MySQL 5.7 Community Server - S disabled
mysql80-community                  MySQL 8.0 Community Server     enabled:   265
mysql80-community-source           MySQL 8.0 Community Server - S disabled

比如我们看到现在启用的是8.0版本系列的。我们需要安装的是5.x系列的。那么我们就可以执行以下命令:

[root@master ~] # yum-config-manager --disable mysql80-community
[root@master ~]#  yum-config-manager --enable mysql57-community

注:如果出现yum-config-manager: command not found,你需要执行yum -y install yum-utils

启用与禁用命令执行成功后,再次查看MySQL的哪些源被禁用:

[root@master ~]# yum repolist all | grep mysql
mysql-cluster-7.5-community        MySQL Cluster 7.5 Community       禁用
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - Sou 禁用
mysql-cluster-7.6-community        MySQL Cluster 7.6 Community       禁用
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - Sou 禁用
mysql-cluster-8.0-community        MySQL Cluster 8.0 Community       禁用
mysql-cluster-8.0-community-source MySQL Cluster 8.0 Community - Sou 禁用
mysql-connectors-community         MySQL Connectors Community        启用:   185
mysql-connectors-community-source  MySQL Connectors Community - Sour 禁用
mysql-tools-community              MySQL Tools Community             启用:   111
mysql-tools-community-source       MySQL Tools Community - Source    禁用
mysql-tools-preview                MySQL Tools Preview               禁用
mysql-tools-preview-source         MySQL Tools Preview - Source      禁用
mysql57-community                  MySQL 5.7 Community Server        启用:   504
mysql57-community-source           MySQL 5.7 Community Server - Sour 禁用
mysql80-community                  MySQL 8.0 Community Server        禁用
mysql80-community-source           MySQL 8.0 Community Server - Sour 禁用

此时我们发现5.7版本的MySQL已经被启用。
这时我们查看当前系统配置,仅显示启用MySQL命令:yum repolist enabled | grep "mysql.*-community.*"

[root@master ~]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community   MySQL Connectors Community                      185
mysql-tools-community        MySQL Tools Community                           111
mysql57-community            MySQL 5.7 Community Server                      504

14.安装MySQL

[root@master ~]# yum install mysql-community-server

Linux上安装MySQl超详细教程(CentOS系统) _ JavaClub全栈架构师技术笔记

该命令会安装MySQL服务器 (mysql-community-server)
及其所需的依赖、相关组件,包括mysql-community-client、mysql-community-common、mysql-community-libs等。

15.启动

service mysqld start        #开启MySQL服务 
service mysqld stop         #关闭MySQL服务
service mysqld restart       #重启MySQL服务 
service mysqld status        #查看服务状态

如果启动失败报错

Linux上安装MySQl超详细教程(CentOS系统) _ JavaClub全栈架构师技术笔记

注:意思是mysql配置文件my.cnf中的/var/lib/mysql文件夹下不允许有文件, 删掉mysql文件夹下的所有文件rm -rf /var/lib/mysql/*,并且手动初始化数据库mysqld --initialize --user=mysql再次重启服务service mysqld start,成功!!

16.修改密码及登录
MySQL第一次启动后会创建超级管理员账号root@master,初始密码存储在日志文件中:

方法一: [root@master ~]# grep ‘temporary password’ /var/log/mysqld.log2021-12-16T20:30:20.772336Z 1 [Note] A temporary password is generatedfor root@localhost: J0FSEl./DLP
[root@slave1 ~]# mysql -uroot -pJ0FSEl./D
LP

方法二:使用编辑器打开/etc/my.cnf文件在my.cnf文件的末行加入skip-grant-tables保存并退出,重启MySQL服务器service mysqld restart,跳过密码登录验证。(写者使用的是方法二,且能够成功使用)

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> select User from user;
+---------------+
| User          |
+---------------+
| mysql.session |
| mysql.sys     |
| root          |
+---------------+
3 rows in set (0.00 sec)
mysql>  update mysql.user set authentication_string=password('123456') where user='root';
Query OK, 1 row affected, 1 warning (0.10 sec)
Rows matched: 1  Changed: 1  Warnings: 1
mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec)
mysql> exit;
Bye

退出mysql后使用编辑器打开/etc/my.cnf文件在my.cnf文件的注释掉上一步末行加入skip-grant-tables保存并退出,重启MySQL服务器service mysqld restart

如果在进入MySQL后,使用MySQL时出现

mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

解决方法:

MySQL版本5.7.6版本以前用户可以使用如下命令:
mysql> SET PASSWORD = PASSWORD('root2021'); 
MySQL版本5.7.6版本开始的用户可以使用如下命令:
mysql> ALTER USER USER() IDENTIFIED BY 'root2021';
mysql> flush privileges; 

三、下载.tar文件安装MySQL

1.选择MySQL的版本
官方下载地址:https://downloads.mysql.com/archives/community/

Linux上安装MySQl超详细教程(CentOS系统) _ JavaClub全栈架构师技术笔记
也可以进入linux后用命令下载

wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.26-1.el6.x86_64.rpm-bundle.tar

2.环境配置

Linux连接工具:Xshell
文件管理工具:Xftp
系统版本: CentOS 6.5 64位
安装源文件版本:mysql-8.0.26-1.el6.x86_64.rpm-bundle.tar

3.下载安装MySQL
首先进入/opt目录,进行在线下载,也可以将下载的文件通过xftp传入到/opt目录

cd /opt
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.26-1.el6.x86_64.rpm-bundle.tar

下载完成后你会在/opt目录发现mysql-8.0.26-1.el6.x86_64.rpm-bundle.tar文件,然后解压并安装到/usr/local目录下

tar -zxvf mysql-8.0.26-1.el6.x86_64.rpm-bundle.tar /usr/local

重命名

mv mysql-8.0.26-1.el6.x86_64 mysql-8.0.26

4.添加系统mysql组和mysql用户

首先检查mysql组和用户是否存在,如无创建

cat /etc/group | grep mysql
#类似  
mysql:x:490: cat /etc/passwd | grep mysql
#类似  
mysql:x:496:490::/home/mysql:/bin/bash

以上为存在的情况,如无,执行添加命令:

groupadd mysql
useradd -r -g mysql mysql

注:useradd -r参数表示mysql用户是系统用户,不可用于登录系统

5.安装数据库

(1)创建data目录

cd /usr/local/mysql-8.0.26
mkdir data

(2)将/usr/local/mysql-8.0.26的所有者及所属组改为mysql

chown -R mysql.mysql /usr/local/mysql-8.0.26

(3)在/usr/local/mysql-8.0.26/support-files目录下创建my_default.cnf

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
basedir = /usr/local/mysql-8.0.26
datadir = /usr/local/mysql-8.0.26/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8
log-error = /usr/local/mysql-8.0.26/data/mysqld.log
pid-file = /usr/local/mysql-8.0.26/data/mysqld.pid

(4)拷贝,如果提示是否覆盖,y

cp support-files/my_default.cnf /etc/my.cnf

(5)初始化 mysqld

cd /usr/local/mysql-8.0.26
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.26/ --datadir=/usr/local/mysql-8.0.26/data/ 

(6)初始化完成之后,查看日志

/usr/local/mysql-8.0.26/data/mysqld.log

(7)临时密码

2021-04-08T06:14:29.790033Z 1 [Note] A temporary password is generated for root@localhost: a8?DQir=T+k+

(8)把启动脚本放到开机初始化目录

cp support-files/mysql.server /etc/init.d/mysql

(9)启动mysql服务

service mysql start
# 登录mysql,密码为初始密码
cd /usr/local/mysql-8.0.26
./bin/mysql -u root -p

(10)修改密码

mysql> ALTER USER USER() IDENTIFIED BY 'root2021';
mysql> grant all privileges on *.* to root@'%' identified by 'root2021';
mysql> flush privileges;

(11)添加远程访问权限

mysql> use mysql;
mysql> update user set host='%' where user = 'root';
mysql> flush privileges;

(12)重启mysql生效

service mysql stop
service mysql start
或
service mysql restart

四、卸载MySQL

由于某些原因,在本次安装 MySQL 之前,可能你的电脑中已经有了安装过 MySQL 的痕迹,这可能会给下面 MySQL 的安装带来各种问题(如密码不能初始化、MySQL 执行失败等),因此首先需要先彻底清除电脑中与MySQL 有关的任何文件。另外,如果有一些小伙伴需要安装过旧版本的MySQL,想把旧版本卸载重新安装新版本的MySQL,这也需要知道如何卸载。

1.首先要检查电脑里是否已经安装了 MySQL。输入以下命令来查看电脑中与 MySQL 有关的安装信息。

yum list installed mysql*

2.如果命令的输出什么也没有,那就无需卸载。如果有,则要输入以下命令来卸载:

yum erase mysql*

卸载通常不是万能的,还需要手动删除与 MySQL 有关的文件。输入以下命令来查找这种文件:

sudo find / -name 'mysql*'

输入以下命令来删除目录 /var/、/usr/、/etc/ 下的这些文件。

sudo find /var /usr /etc -name "mysql*" -exec rm -r {
     } \;

删除完成之后,再使用上面的查找命令,看看还能不能找到这些文件。

sudo find / -name 'mysql*'

作者:代码狂人张三
来源链接:https://blog.csdn.net/m0_48042670/article/details/121947217

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/41652.html

分享给朋友:

“Linux上安装MySQl超详细教程(CentOS系统)” 的相关文章

一文带你了解MySQL基础

目录 一,为什么要学习数据库 二,数据库的相关概念 2.1数据库术语...

MySQL触发器

MySQL触发器 触发器是一种特殊的存储过程,触发器和存储过程一样是一个能完成特定功能、存储在数据库服务器上的SQL片段,但是触发器无需调用,当对数据库表中的数据执行DML操作时自动触发这个SQL片段的执行,无需手动调用. 在MySQL中,只...

性能优化|Mysql优化之Explain精讲

性能优化|Mysql优化之Explain精讲

Explain详解 本次测试使用的数据库版本为5.7 初始化sql语句: CREATE TABLE `film` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(10) D...

mysql之基础查询

mysql之基础查询

文章目录 DQL语言的学习 进阶1:基础查询 1.查询表中的单个字段 2.查询表中的多个字段 3.查询表中的所有字段 4.查询常量值...

mysql查询字段是否包含某个值或某些值的方法

mysql查询字段是否包含某个值或某些值的方法

方法一:SELECT * from demo where type like  "%3%";                字段type中包含3的都查询到了,会导致索...

mysql 查询表中前10条数据

mysql 查询表中前10(X)条数据 select * from user_dongtai LIMIT 0,10(X) 作者:Curry·DK 来源链接:https://blog.csdn.net/Wangdiankun/art...

MYSQL查询空值/NULL值

 select * from XXXX where YYYY is NULL 作者:Bupt_Luke 来源链接:https://blog.csdn.net/u012662688/article/details/51680437...

MySQL查询某个字段不重复的所有记录

MySQL查询某个字段不重复的所有记录

select a.id,a.ip,a.creationTime from myTable a right join ( select max(id) id from myTable group by ip) b on b.id = a.id where a.id is not n...

mysql查询字段为null 返回0

SELECT   IF(AVG(字段) IS NULL,0, 字段) as 重命名   From  xxx 作者:键盘侠007 来源链接:https://blog.csdn.net/qq_29072049/a...

mysql 查询操作日志

最近在操作mysql的过程中,因某些愿意需要查看mysql的日志,故总结如下: 要查看日志,首先需要查看日志是否开启, 使用一下语句: SHOW VARIABLES LIKE 'log_bin'; 如果显示ON,则表示日志已...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。