1. Linux下 MySQL 的详细安装与使用
@
目录1. Linux下 MySQL 的详细安装与使用1. Linux 下安装 MySQL8.0 的详细安装步骤:2. Linxu 当中的MySQL 设置远程登录3. 最后:
1. Linux 下安装 MySQL8.0 的详细安装步骤:
查看是否安装过MySQL,如果你是用rpm安装, 检查一下RPM PACKAGE:
rpm -qa | grep -i mysql # -i 忽略大小写
检查mysql service:
systemctl status mysqld.service
如果存在mysql-libs的旧版本包,显示如下:
如果不存在mysql-lib的版本,显示如下:
MySQL的 4 大版本:
MySQL Community Server 社区版本 ,开源免费,自由下载,但不提供官方技术支持,适用于 大多数普通用户。
MySQL Enterprise Edition 企业版本 ,需付费,不能在线下载,可以试用30天。提供了更多的 功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。
MySQL Cluster 集群版 ,开源免费。用于架设集群服务器,可将几个MySQL Server封装成一个 Server。需要在社区版或企业版的基础上使用。
MySQL Cluster CGE 高级集群版 ,需付费。
这里我们安装的是 8.0.27 版本的 MySQL 。官方还提供了 MySQL Workbench (GUITOOL)一款专为MySQL设计的 ER/数据库建模工具 。它是 著名的数据库设计工具DBDesigner4的继任者。MySQLWorkbench又分为两个版本,分别是 社区版(MySQL Workbench OSS)、 商用版 (MySQL WorkbenchSE)。
下载MySQL指定版本:
官网下载地址:MySQL
打开官网,点击DOWNLOADS
然后,点击 MySQL Community(GPL) Downloads
点击 MySQL Community Server
在General Availability(GA) Releases中选择适合的版本
这里不能直接选择CentOS 7系统的版本,所以选择与之对应的 Red Hat Enterprise Linux https://downloads.mysql.com/archives/community/ 直接点Download下载RPM Bundle全量
包。包括了所有下面的组件。不需要一个一个下载了。
补充:
Linux系统下安装MySQL的几种方式
方式1:rpm命令
使用rpm命令安装扩展名为".rpm"的软件包。
.rpm包的一般格式:
方式2:yum命令
需联网,从 互联网获取 的yum源,直接使用yum命令安装。
方式3:编译安装源码包
针对 tar.gz 这样的压缩格式,要用tar命令来解压;如果是其它压缩格式,就使用其它命令
Linux系统下安装MySQL,官方给出多种安装方式
下载的tar包,用压缩工具打开
解压后rpm安装包 (红框为抽取出来的安装包)
CentOS7下检查MySQL依赖,检查/tmp临时目录权限(必不可少)
由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限。执 行:
chmod -R 777 /tmp
安装前,检查依赖
rpm -qa|grep libaio
如果存在libaio包如下:
rpm -qa|grep net-tools
如果存在net-tools包如下:
如果不存在需要到centos安装盘里进行rpm安装。安装linux如果带图形化界面,这些都是安装好 的。
将安装程序拷贝到/opt目录下
这里我们通过 XFtp 工具,将其上传到虚拟机的Linux 当中的 opt 目录当中去。
安装过程中可能的报错信息:
一个命令: yum remove mysql-libs 解决,清除之前安装过的依赖即可
yum remove mysql-libs
在mysql的安装文件目录下执行:(必须按照顺序执行)
rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm
注意: 如在检查工作时,没有检查 mysql依赖环境在安装mysql-community-server会报错
rpm 是Redhat Package Manage缩写,通过RPM的管理,用户可以把源代码包装成以rpm为扩展名的 文件形式,易于安装。
-i , --install 安装软件包
-v , --verbose 提供更多的详细信息输出
-h , --hash 软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好),展示进度条
安装过程截图
安装过程中可能的报错信息:
一个命令: yum remove mysql-libs 解决,清除之前安装过的依赖即可
yum remove mysql-libs
9 . 查看MySQL版本
执行如下命令,如果成功表示安装mysql成功。类似java -version如果打出版本等信息
mysql --version
#或
mysqladmin --version
执行如下命令,查看是否安装成功。需要增加 -i 不用去区分大小写,否则搜索不到。
rpm -qa|grep -i mysql
服务的初始化
为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执 行下面的命令初始化:
mysqld --initialize --user=mysql
说明: --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将 该密码标记为过 期 ,登录后你需要设置一个新的密码。生成的 临时密码 会往日志中记录一份。
查看MySQL配置的临时密码:root@localhost: 后面就是初始化的密码
cat /var/log/mysqld.log
启动MySQL,查看状态
#加不加.service后缀都可以
启动:systemctl start mysqld.service
关闭:systemctl stop mysqld.service
重启:systemctl restart mysqld.service
查看状态:systemctl status mysqld.service
[root@RainbowSea opt]# systemctl start mysqld.service
[root@RainbowSea opt]# systemctl status mysqld.service
mysqld 这个可执行文件就代表着 MySQL 服务器程序,运行这个可执行文件就可以直接启动一个 服务器进程。
查看进程:
ps -ef | grep -i mysql
或者
[root@RainbowSea opt]# ps -aux | grep mysql
查看MySQL服务是否自启动 ,默认是enabled (就是开启自启动的)
systemctl list-unit-files|grep mysqld.service
如不是enabled可以运行如下命令设置自启动
systemctl enable mysqld.service
如果希望不进行自启动,运行如下命令设置
systemctl disable mysqld.service
disabled 表示开启不自启动,需要手动启动 MySQL 。
MySQL登录
首次登录:通过 mysql -hlocalhost -P3306 -uroot -p 进行登录,在Enter password:录入初始化密码
mysql -hlocalhost -P3306 -uroot -p
初始化密码就是:
执行如下命令:所给的一个临时的初始化密码。
cat /var/log/mysqld.log
[root@RainbowSea opt]# mysql -h127.0.0.1 -P3306 -uroot -p
修改密码
因为初始化密码默认是过期的,所以查看数据库会报错
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你设置的密码';
注意:
5.7版本之后(不含5.7),mysql加入了全新的密码安全机制。设置新密码太简单会报错。
改为更复杂的密码规则之后,设置成功,可以正常使用数据库了
MySQL的卸载:
关闭 mysql 服务
systemctl stop mysqld.service
查看当前 mysql 安装状况
rpm -qa | grep -i mysql
#或
yum list installed | grep mysql
卸载上述命令查询出的已安装程序
yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx
务必卸载干净,反复执行 rpm -qa | grep -i mysql 确认是否有卸载残留
删除 mysql 相关文件
查找相关文件
find / -name mysql
删除上述命令查找出的相关文件
rm -rf xxx
删除 my.cnf
rm -rf /etc/my.cnf
2. Linxu 当中的MySQL 设置远程登录
当前问题:
在用SQLyog或Navicat中配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远 程连接引起的。
确认网络
在远程机器上使用ping ip地址 保证网络畅通
在远程机器上使用telnet命令 保证端口号开放 访问
telnet ip地址 端口号
拓展: telnet命令开启 :
telnet 192.168.76.151 3306
关闭 Linux 防火墙或开放 3306端口
方式一:
systemctl start firewalld.service
systemctl status firewalld.service # 查看防火墙的状态
systemctl stop firewalld.service
#设置开机启用防火墙
systemctl enable firewalld.service
#设置开机禁用防火墙
systemctl disable firewalld.service
#设置开机禁用防火墙
systemctl disable firewalld.service
方式二:开放端口
查看开放的端口号
firewall-cmd --list-all
设置开放的端口号
firewall-cmd --add-service=http --permanent
firewall-cmd --add-port=3306/tcp --permanent
重启防火墙
firewall-cmd --reload
Linux下修改配置
在Linux系统MySQL下测试:
use mysql;
select Host,User from user;
可以看到root用户的当前主机配置信息为localhost。
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只 能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而 % 是个 通配符 ,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连 接。如果 Host=% ,表示所有IP都有连接权限。
注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产 环境的IP进行设置。
update user set host = '%' where user ='root';
Host设置了“%”后便可以允许远程访问。
Host修改完成后记得执行flush privileges使配置立即生效:
flush privileges;
测试:
如果是 MySQL5.7 版本,接下来就可以使用 SQLyog 或者 Navicat 成功连接至MySQL了。
如果是 MySQL8 版本,连接时还会出现如下问题:
配置新连接报错:错误号码 2058,分析是 mysql 密码加密方法变了。
解决方法: Linux下 mysql -u root -p 登录你的 mysql 数据库,然后 执行这条SQL:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你MySQL的密码';
然后在重新配置SQLyog的连接,则可连接成功了,OK。
system cls; -- 在 Windows 系统上
system clear; -- 在 Linux 或 macOS 系统上
Ctrl + L # 使用快捷键
3. 最后:
“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”