这里的Linux是值得centos版本,不管是7还是8,都可以按照这个进行。

在进行安装之前先说一下如何在Linux下卸载mysql数据库

卸载mysql

1. 关闭 mysql 服务

systemctl stop mysqld.service
2. 查看当前 mysql 安装状况
rpm -qa | grep -i mysql # 或 yum list installed | grep mysql
3. 卸载上述命令查询出的已安装程序3. 卸载上述命令查询出的已安装程序
yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx
务必卸载干净,反复执行 rpm -qa | grep -i mysql 确认是否有卸载残留
4. 删除 mysql 相关文件
查找相关文件
find / -name mysql
删除上述命令查找出的相关文件
rm -rf xxx
5.删除 my.cnf
rm -rf /etc/my.cnf
MySQL的Linux版安装
下载MySQL指定版本
下载地址
官网:https://www.mysql.com
打开官网,点击DOWNLOADS
然后,点击 MySQL Community(GPL) Downloads

 

 点击 MySQL Community Server

 Linux系统下安装MySQL的几种方式

 方式1:rpm命令使用rpm命令安装扩展名为".rpm"的软件包。

方式2:yum命令需联网,从 互联网获取 的yum源,直接使用yum命令安装。

方式3:编译安装源码包针对 tar.gz 这样的压缩格式,要用tar命令来解压;如果是其它压缩格式,就使用其它命令

下载的tar包,用压缩工具打开

解压后rpm安装包 (红框为抽取出来的安装包)

CentOS7下检查MySQL依赖
1. 检查/tmp临时目录权限(必不可少)
由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限。执 行
chmod -R 777 /tmp

 

安装前,检查依赖
rpm -qa|grep libaio

rpm -qa|grep net-tools

 

CentOS7下MySQL安装过程

1. 将安装程序拷贝到/opt目录下

在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依赖环境在安装mysql-community-server会报错
rpm 是Redhat Package Manage缩写,通过RPM的管理,用户可以把源代码包装成以rpm为扩展名的
文件形式,易于安装。
-i , --install 安装软件包
-v , --verbose 提供更多的详细信息输出
-h , --hash 软件包安装的时候列出哈希标记 (和 -v 一起使用效果更好),展示进度条

一个命令:yum remove mysql-libs 解决,清除之前安装过的依赖即可

查看MySQL版本

mysql --version
#或
mysqladmin --version

 

我安装的是 8.0.25

执行如下命令,查看是否安装成功。需要增加 -i 不用去区分大小写,否则搜索不到。 

rpm -qa|grep -i mysql
服务的初始化
为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执 行下面的命令初始化:
mysqld --initialize --user=mysql
说明:
--initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将 该密码标记为过
期 ,登录后你需要设置一个新的密码。生成的 临时密码 会往日志中记录一份。
查看密码:
cat /var/log/mysqld.log

root@localhost: 后面就是初始化的密码

启动MySQL,查看状态

#加不加.service后缀都可以 
启动:systemctl start mysqld.service 
关闭:systemctl stop mysqld.service 
重启:systemctl restart mysqld.service 
查看状态:systemctl status mysqld.service

 

mysqld 这个可执行文件就代表着 MySQL 服务器程序,运行这个可执行文件就可以直接启动一个
服务器进程。

 查看进程:ps -ef | grep -i mysql

查看 MySQL 服务是否自启动
systemctl list-unit-files|grep mysqld.service

如果希望不进行自启动,运行如下命令设置 systemctl disable mysqld.service

MySQL登录

首次登录
通过 mysql - hlocalhost - P3306 - uroot - p 进行登录,在 Enter password :录入初始化密码

 修改密码

因为初始化密码默认是过期的,所以查看数据库会报错
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
5.7 版本之后(不含 5.7 ), mysql 加入了全新的密码安全机制。设置新密码太简单会报错。
改为更复杂的密码规则之后,设置成功,可以正常使用数据库了
设置远程登录
1. 当前问题
在用 SQLyog Navicat 中配置远程连接 Mysql 数据库时遇到如下报错信息,这是由于 Mysql 配置了不支持远 程连接引起的
2. 确认网络
1. 在远程机器上使用 ping ip 地址 保证网络畅通
2. 在远程机器上使用 telnet 命令 保证端口号开放 访问

 telnet ip地址 端口号

 

 

3.关闭防火墙或开放端口  

方式一:关闭防火墙

 

systemctl start firewalld.service 
systemctl status firewalld.service 
systemctl stop firewalld.service 
#设置开机启用防火墙 
systemctl enable 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

 4. Linux下修改配置

 Linux系统MySQL下测试:

use mysql; 
select Host,User from user;

 可以看到root用户的当前主机配置信息为localhost

修改 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';
Host 设置了“%”后便可以允许远程访问。

 Host修改完成后记得执行flush privileges使配置立即生效:

flush privileges;
5. 测试
如果是 MySQL5.7 版本,接下来就可以使用 SQLyog 或者 Navicat 成功连接至 MySQL 了。
如果是 MySQL8 版本,连接时还会出现如下问题:
配置新连接报错:错误号码 2058 ,分析是 mysql 密码加密方法变了。
解决方法: Linux mysql -u root -p 登录你的 mysql 数据库,然后 执行这条 SQL
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123';
然后在重新配置 SQLyog 的连接,则可连接成功了, OK

 

Logo

更多推荐