如果你是用rpm安装, 检查一下RPM PACKAGE:
rpm -qa | grep -i mysql # -i 忽略大小写
检查mysql service:
systemctl status mysqld.service
关闭 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
删除 mysql 相关文件
-查找相关文件
find / -name mysql
-删除上述命令查找出的相关文件
rm -rf xxx
删除 my.cnf
rm -rf /etc/my.cnf
- MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户。
- MySQL Enterprise Edition 企业版本,需付费,不能在线下载,可以试用30天。提供了更多的功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。
- MySQL Cluster 集群版,开源免费。用于架设集群服务器,可将几个MySQL Server封装成一个Server。需要在社区版或企业版的基础上使用.
- MySQL Cluster CGE 高级集群版,需付费。
截止目前,官方最新版本为 8.0.27 。此前,8.0.0 在 2016.9.12日就发布了。
这里主要使用 8.0.25
版本
此外,官方还提供了 MySQL Workbench (GUITOOL)一款专为MySQL设计的 ER/数据库建模工具 。它是著名的数据库设计工具DBDesigner4的继任者。MySQLWorkbench又分为两个版本,分别是 社区(MySQLWorkbench OSS)、 商用版 (MySQL WorkbenchSE)。
官网:https://www.mysql.com
然后,点击 MySQL Community(GPL) Downloads
如果安装Windows 系统下MySQL ,推荐下载 MSI安装程序 ;点击 Go to Download Page 进行下载即可
Windows下的MySQL安装有两种安装程序
mysql-installer-web-community-8.0.25.0.msi
下载程序大小:2.4M;安装时需要联网安装组件。mysql-installer-community-8.0.25.0.msi
下载程序大小:435.7M;安装时离线安装即可。推荐方式1:rpm命令
使用rpm命令安装扩展名为".rpm"的软件包
方式2:yum命令
但是需要联网,从 互联网获取 的yum源,直接使用yum命令安装。
方式3:编译安装源码包
针对 tar.gz 这样的压缩格式,要用tar命令来解压;如果是其它压缩格式,就使用其它命令。
Red Hat Enterprise Linux
https://downloads.mysql.com/archives/community/
直接点Download
下载RPM Bundle全量包。包括了所有下面的组件。不需要一个一个下载了。在安装前我们需要检查
/tmp
临时目录权限(必不可少)
由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限。执
行 :
chmod -R 777 /tmp
安装前,检查依赖
rpm -qa|grep libaio
yum install libaio
如果存在net-tools包如下:
在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
mysql-community-server
会报错rpm
是Redhat Package Manage缩写,通过RPM的管理,用户可以把源代码包装成以rpm为扩展名的文件形式,易于安装。-i
, --install 安装软件包-v
, --verbose 提供更多的详细信息输出-h
, --hash 软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好),展示进度条在执行第三条命令的时候会出现错误mariadb XXXXX
啥的。
这个时候执行一个命令:
yum remove mysql-libs
解决,清除之前安装过的依赖即可
如上图所示就成功了
执行如下命令,如果成功表示安装mysql成功。类似java -version如果打出版本等信息
mysql --version
#或
mysqladmin --version
执行如下命令,查看是否安装成功。需要增加 -i 不用去区分大小写,否则搜索不到。
rpm -qa|grep -i mysql
为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执行下面的命令初始化:
mysqld --initialize --user=mysql
说明:
--initialize
选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期 ,登录后你需要设置一个新的密码。生成的临时密码会往日志中记录一份。
查看密码:
cat /var/log/mysqld.log
#加不加 .service 后缀都可以
启动:systemctl start mysqld.service
关闭:systemctl stop mysqld.service
重启:systemctl restart mysqld.service
查看状态:systemctl status mysqld.service
mysqld 这个可执行文件就代表着 MySQL 服务器程序,运行这个可执行文件就可以直接启动一个
服务器进程。
首次安装,Mysql服务是没有启动的
我们可以查看Mysql服务的状态看是否启动
或者通过进程查看
ps -ef | grep -i mysql
这个时候Mysql服务不是自启动的,我们关闭我们的服务器或者虚拟机就会需要重启 Mysql服务。
通过命令查看是否自启动
systemctl list-unit-files|grep mysqld.service
如不是enabled可以运行如下命令设置自启动
systemctl enable mysqld.service
同理,如果希望不进行自启动,运行如下命令设置
systemctl disable mysqld.service
通过mysql -hlocalhost -P3306 -uroot -p
进行登录,在Enter password:录入初始化密码(就是上面那个乱七八糟的密码)
这里注意一个小细节,就是在 Linux上输入密码是不会显示的,所以只要复制好了后,直接粘贴敲回车就好了
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
我们新建连接,输入服务器 ip 和 端口和数据库密码,发现连接失败
1、首先设置我们服务器的安全组打开
2、然后在我们的服务器里面将防火墙的 3306 端口打开,命令如下
# 查看firewall服务状态
systemctl status firewalld
# 开启、重启、关闭、firewalld.service服务
# 开启
service firewalld start
# 重启
service firewalld restart
# 关闭
service firewalld stop
# 查看防火墙规则
firewall-cmd --list-all # 查看全部信息
firewall-cmd --list-ports # 只看端口信息
# 开启端口
开端口命令:firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙:systemctl restart firewalld.service
命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
#常用的firewall命令常用命令介绍
1 firewall-cmd --state ##查看防火墙状态,是否是running
2 firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
3 firewall-cmd --get-zones ##列出支持的zone
4 firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
5 firewall-cmd --query-service ftp ##查看ftp服务是否支持,返回yes或者no
6 firewall-cmd --add-service=ftp ##临时开放ftp服务
7 firewall-cmd --add-service=ftp --permanent ##永久开放ftp服务
8 firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服务
9 firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
10 firewall-cmd --remove-port=80/tcp --permanent ##永久移除80端口
11 firewall-cmd --list-ports ##查看已经开放的端口
12 iptables -L -n ##查看规则,这个
在Linux系统MySQL下测试:
use mysql;
select Host,User from user;
可以看到root
用户的当前主机配置信息为localhost
,意思就是 root 用户默认是只能在本机连接的,我们需要修改
我们需要修改Host为通配符%
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';
注意执行上面命令后要进行刷新,使配置生效
flush privileges;
这个时候已经可以连接成功了
拓展
如果是 MySQL8 版本,连接时可能还会出现如下问题:
配置新连接报错:错误号码 2058,分析是 mysql 密码加密方法变了。
解决方法:Linux下 mysql -u root -p 登录你的 mysql 数据库,然后 执行这条SQL:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';
然后在重新配置SQLyog的连接,则可连接成功了,OK。