linux安装mysql5.7.36 从入门到精通 (mysql5.7版本以上都可以)

今天是2022年4月6日。

在当前时间上,mysql目前最新的版本是MySQL 8.0.28,在地址可见:MySQL :: Download MySQL Community Server https://dev.mysql.com/downloads/mysql/  ,如图:

而mysql的上一个大的版本是5.7,它的截止版本是mysql 5.7.36(在上一个链接上,选择“Archives”可见之前的mysql的历史版本),在如下图:

 然后点击下载按钮。

1. mysql安装前准备

1.1 然后将下载的文件,通过WinSCP或者Xftp 7等软件上传到/usr/local文件夹下,如图:

1.2 使用root【建议使用root账号】 账号登录到linux系统上 ,并用【cd /usr/local】切换到目录下,并用【ls】,如图:

 1.3 使用【md5sum 文件名】查看该mysql的md5的编号是否与官方一致(不一致请判断下是否正确下载或者正确上传。),如图:

 1.4 创建mysql组和mysql用户,命令如下:

groupadd mysql  --创建mysql的group
useradd -r -g mysql mysql   --在mysql的group创建一个叫mysql的用户

2.mysql安装

 2.1 在/usr/local目录下,执行【tar -zxvf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz 】命令,如图:

 等执行完毕后,使用【ls】命令可见解压后的文件夹,如:

将解压后的文件夹,重命名为mysql-5.7.36,执行【 mv mysql-5.7.36-linux-glibc2.12-x86_64 mysql-5.7.36】,如图:

2.2 在当前目录(/usr/local/mysql-5.7.36/)下,创建为data的目录,命令如下:

mkdir  /usr/local/mysql-5.7.36/data   
或者
mkdir  data    -- 因为当前目录为/usr/local/mysql-5.7.36/

-- 假如创建的目录是多层的目录的话,那么需要再加一个参数上去,比如:
-- mkdir -p /usr/local/mysql-5.7.36/data/mysql   --才能级联创建多层目录

同时并将该目录授权于指定的用户和用户组的,命令如下:

chown mysql:mysql  /usr/local/mysql-5.7.36/data
或者
chown mysql:mysql  ./data   -- 这【./】代表当前目录,当前目录为/usr/local/mysql-5.7.36/,也可以不加【./】。

-- 如果有多级目录的话,如上面举例的:mkdir -p  /usr/local/mysql-5.7.36/data/mysql,那么这里的命令如下:
-- chown -R mysql:mysql  /usr/local/mysql-5.7.36/data/mysql


提示:
chown [选项]... [所有者][:[组]] 文件...
命令功能:通过chown改变文件的拥有者和群组。在更改文件的所有者或所属群组时,可以使用用户名称和用户识别码设置。普通用户不能将自己的文件改变成其他的拥有者。其操作权限一般为管理员。
用到的参数:
-R 处理指定目录以及其子目录下的所有文件

2.3 修改my.cnf的参数,执行【vim /etc/my.cnf】,如图:

 修改为,如下图:

相关的代码,如下:

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql-5.7.36
datadir=/usr/local/mysql-5.7.36/data/
socket=/tmp/mysql.sock
log-error=/usr/local/mysql-5.7.36/data/mysql.err
pid-file=/usr/local/mysql-5.7.36/data/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

2.4 切换到/usr/local/mysql-5.7.36/bin目录下,并执行【./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-5.7.36/ --datadir=/usr/local/mysql-5.7.36/data/ --user=mysql --initialize】命令,却发现有报错,如图:

该错误是由于没有安装libaio造成。

2.5 安装libaio。执行【yum install -y libaio】,如图:

然后再执行【yum -y install numactl】命令,如图:

2.6 再次执行【./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql-5.7.36/ --datadir=/usr/local/mysql-5.7.36/data/ --user=mysql --initialize】,当前目录是在/usr/local/mysql-5.7.36/bin目录下,如图:

2.8 执行【cp /usr/local/mysql-5.7.36/support-files/mysql.server /etc/init.d/mysql】,如图:

2.7 执行 【cat /usr/local/mysql-5.7.36/data/mysql.err】命令查看密码并复制,如图:

 2.8 启动mysql的服务,执行【service mysql start】命令,如图:

以下命令:
service mysql start  -- mysql启动
service mysql stop  -- mysql关闭
service mysql restart -- mysql重启
service mysql status  -- 查看mysql状态

 提示:

以下几种命令都可以查看mysql当前进程:
pgrep mysql 
或者
service mysql status
或者
ps -ef | grep mysql  --这种最详细

2.9 现在开始登陆mysql服务端,先将密码复制下,在/usr/local/mysql-5.7.36/bin目录下输入【./mysql -uroot -p】,如图:

 然后修改当前用户密码,执行【set password='你要输入的密码';flush privileges;】命令,如图:

 2.10 此时mysql 已经启动并登陆数据库服务成功。

3 将mysql命令加入到系统命令上

 3.1 我们倘若想在任何目录下都可以使用【mysql -uroot -p】命令登陆mysql,那么此时在linux任何某个目录是否可以吗?如图:

那么如何解决呢?

 3.2 那么接下来就是授权以及添加服务,如图:

 命令:

chmod +x /etc/init.d/mysql
chkconfig --add mysql

 3.3 将mysql命令添加到服务【ln -s /usr/local/mysql-5.7.36/bin/mysql /usr/bin】,如图:

此时理论上应该已经可以。

信不信呢?

我们下一步来验证下。

3.4 切换到任何一个目录下,使用 【mysql -uroot -p】命令是否能登陆mysql。如:

 此时果然能登陆成功。

4 远程连接mysql 

4.1 此时打开cmd命令,输入【telnet 你的mysql安装的IP 3306】,如图:

 目前无法访问该linux系统上的3306端口,那么如何解决呢?

4.2 首先登陆mysql【mysql -uroot -p】,登陆后,输入【select host,user from mysql.user;】,如图:

root用户对应的host是localhost,这代表只能本地可以访问该数据库。

因此默认mysql的用户是没有远程访问的权限的,因此当外面的程序跟数据库不在同一台服务器上时,我们需要开启mysql的远程访问权限。

主要有两种方式,改表法和授权法。

以下分别将这两种方法都罗列出来。

1).改表法

那么只需要修改mysql库的user表,将host项,从localhost改为%。%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip,比如可以将localhost改为192.168.1.10,这表示只允许局域网的192.168.1.10这个ip远程访问mysql。

update mysql.user set host = '%' where user = 'root'; 

flush privileges; -- 刷新下权限,使之有效

如图:

2).授权法

输入【grant all privileges on *.* to 'root'@'%' IDENTIFIED BY 'root123456' with grant option;】命令,如图

 代码如下:

grant all privileges on *.* to 'root'@'%' IDENTIFIED BY 'root123456' with grant option;

以下是解释:
授权格式:
grant 权限1[,权限2.权限n] on 数据库.表 to ‘用户名’@‘允许的ip地址’ IDENTIFIED BY '用户名相应的密码'

all privileges:代表所有权限。
*.* :代表所有数据库的所有表。
'root'@'%' : 用户名是root,对应的ip地址是任意的。也可以写成'root' ,因为默认的就是@'%'。
with grant option:这个是在all privileges权限上在赋予更高一层的权限,可以有权限授权或取消权限于其他用户。

以上两种方法,任意一种即可(笔者相对于来说推荐第二种)。

下面是开通防火墙

4.3  打开防火墙配置文件,代码如下【vim /etc/sysconfig/iptables】,

然后在里面增加一行【-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT】,同时这行代码必须在【icmp-host-prohibited】之前。如图:

4.4 重启防火墙 ,输入【service network restart】,再次打开cmd窗口,输入【telnet 你的mysql安装的IP 3306】,会进入如下图所示:

 此时已经可以远程连接上你安装好的linux下的mysql服务器。

此时用Navicat for mysql 软件建立连接测试,如图:

 好,恭喜你,到这里,你的mysql已经安装成功了,同时也能远程连接的上。

理论上来说,任何一个mysql版本都可以按照以上的步骤一步步来,都能安装成功。

  • 7
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值