Linux(CentOS-7)下安装MySQL-5.7.30

MySQL下载

  官网下载地址:mysql下载
  点击上面的下载传送门,来到官网的下载地址,如图1,目前(2020-05-05)最新版本是8.0.20,当然本着好玩,你可装一下最新版本,但是企业实战的话,一般都会选择前一个release的稳定版本,那我们可以点击Looking for previous GA versions?,图片内容会发生变化,可以参考选择如图2 的配置选项下载。
在这里插入图片描述

图1 mysql官网下载界面

  因为我的操作系统是64位的,所以选择64位的tar包,点击下载;因为Sun公司被Oracle收购,伟大的产品mysql,java等也一并归到了Oracle名下,下载的时候需要你登录/注册Oracle账号;下完后是mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz,利用MobaXTermWinSCP等工具上传到你的Linux下,如上传到/data/tools/下;
  当然如果你的Linux服务器有网的话,你也可以直接在/data/tools/直接用wget指令下载:

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

在这里插入图片描述

图2 mysql官网下载配置选择

Linux下新增mysql用户和mysql用户组

  关于操作Linux用户和用户组的详解可以参考博客Linux基础配置——Linux配置用户和用户组操作(三),这里不做详细介绍,一笔带过,利用有sudo权限的账号,新建mysql组,shell指定如下:

sudo groupadd -g 3000 mysql

  在mysql组上新增一个mysql账号,并设置用户mysql登录linux的密码,shell指令如下:

#新增用户mysql
sudo useradd mysql -g 3000 -u 3000 -m

#设置mysql的登录linux的密码,注意哈,这里不是登录mysql数据库的密码,不要乱搞哈。
sudo passwd mysql

输入后会有以下提示,
更改用户 hadoop 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新

  给mysql用户设置sudo权限,利用指令visudo打开sudo权限的编辑文件,文件内找到root ALL=(ALL) ALL,添加一条mysql ALL=(ALL) ALL,然后wq!指令保存文件并退出 文件,结果参考如下:

……
root    ALL=(ALL)       ALL
mysql  ALL=(ALL)       ALL
……

  进入/data/tools folder下,修改下载文件的权限,归属主人,归属组,然后解压解下载来的tar包,指定如下:

#切换到mysql用户下操作
su mysql

#修改tar包的权限
sudo chmod 755 mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

#修改tar包的属主
sudo chown mysql mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

#修改tar包的属组
sudo chgrp mysql mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

#解压tar包,有点大,耐心稍等解压完
sudo tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

MySQL安装

  卸载重装系列排查,如果原系统带了mysql,但是需要卸载重装系列,可以参考以下代码,没有的话直接跳过这里。

#检测系统是否自带Mysql
 rmp -qa|grep mysql

#如果有进行强行卸载
rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64

#检测系统是否自带mariadb
rpm -qa|grep mariadb

#如果有,把mariadb组件全部卸载
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
rpm -e --nodeps mariadb-5.5.64-1.el7.x86_64
rpm -e --nodeps mariadb-server-5.5.64-1.el7.x86_64

  进入解压完的folder mysql-5.7.30-linux-glibc2.12-x86_64里面,其中binfolder是一些启动文件的指令,support-files folder是一些配置文件,具体详情如下:

[root@node1 tools]# cd /data/tools/mysql-5.7.30-linux-glibc2.12-x86_64
[root@node1 mysql-5.7.30-linux-glibc2.12-x86_64]# ll
总用量 292
drwxrwxr-x.  2 mysql mysql   4096 5月   5 12:14 bin
drwxrwxr-x.  2 mysql mysql     55 5月   5 12:14 docs
drwxrwxr-x.  3 mysql mysql   4096 5月   5 12:14 include
drwxrwxr-x.  5 mysql mysql    230 5月   5 12:14 lib
-rw-r--r--.  1 mysql mysql 275235 3月  24 01:35 LICENSE
drwxrwxr-x.  4 mysql mysql     30 5月   5 12:14 man
-rw-r--r--.  1 mysql mysql    587 3月  24 01:35 README
drwxrwxr-x. 28 mysql mysql   4096 5月   5 12:14 share
drwxrwxr-x.  2 mysql mysql    112 5月   5 15:35 support-files

  利用sudo mkdir datashel指令在该文件下面创建一个datafolder用来存放启动日志以及一些mysql的配置产生文件以及数据库的数据存放目录,指令如下:

sudo mkdir data

  进入刚刚说到的support-files folder,利用sudo vim my_default.cnf新建一个默认的mysql配置文件,里面的内容如下,确认配置后wq!保存并退出:

[mysqld]
#设置mysql的安装目录
basedir = /data/tools/mysql-5.7.30-linux-glibc2.12-x86_64
#设置mysql数据库的数据存放目录
datadir = /data/tools/mysql-5.7.30-linux-glibc2.12-x86_64/data
#设置端口
port = 3306

socket = /tmp/mysql.sock
#设置字符集
character-set-server=utf8
#日志存放目录
log-error = /data/tools/mysql-5.7.30-linux-glibc2.12-x86_64/data/mysqld.log
pid-file = /data/tools/mysql-5.7.30-linux-glibc2.12-x86_64/data/mysqld.pid
#允许时间类型的数据为零(去掉NO_ZERO_IN_DATE,NO_ZERO_DATE)
sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

  将配置文件复制到/etc/my.cnf,注意,这个名字不要搞错,指定如下:

 sudo cp my_default.cnf /etc/my.cnf

  初始化mysql,需要进入/data/tools/mysql-5.7.30-linux-glibc2.12-x86_64/bin folder下,然后初始化指令如下:

./mysqld --initialize --user=mysql --basedir=/data/tools/mysql-5.7.30-linux-glibc2.12-x86_64/ --datadir=/data/tools/mysql-5.7.30-linux-glibc2.12-x86_64/data/

  初始化如果报错:./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or 就安装libaio,如果没有则跳过,安装指令如下:

 yum install libaio

  初始化完成后,记得我们之前配置的日志存放目录吗?没错就是/data/tools/mysql-5.7.30-linux-glibc2.12-x86_64/data/mysqld.log,查看里面的内容,如下,最后一句话就是登录mysql的root账号的临时密码,请妥善保管下,待到重置密码后就可以弃用了,一定要重置密码吗?你觉得不重置,谁都能来这里看看这个log文件然后得到root密码是否可行呢?

[mysql@node1 data]$ cat /data/tools/mysql-5.7.30-linux-glibc2.12-x86_64/data/mysqld.log
2020-05-05T07:36:27.025151Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)
2020-05-05T07:36:27.025366Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
2020-05-05T07:36:27.026008Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-05-05T07:36:27.026031Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2020-05-05T07:36:27.026037Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
2020-05-05T07:36:27.429732Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-05-05T07:36:27.496941Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-05-05T07:36:27.558599Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 212c4a0b-8ea3-11ea-9f49-000c2940070c.
2020-05-05T07:36:27.562967Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-05-05T07:36:29.158817Z 0 [Warning] CA certificate ca.pem is self signed.
2020-05-05T07:36:29.468583Z 1 [Note] A temporary password is generated for root@localhost: r_F,arDPO4p&

  把启动脚本放到开机初始化目录下,指令如下:

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

  注册开机启动mysql服务,指令和查看详情以及解释如下:

[root@node1 support-files]# chkconfig  --add mysql
[root@node1 support-files]# chkconfig --list

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。

      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

mysql           0:关    1:关    2:开    3:开    4:开    5:开    6:关
netconsole      0:关    1:关    2:关    3:关    4:关    5:关    6:关
network         0:关    1:关    2:开    3:开    4:开    5:开    6:关

0,1,2,3,4,5,6表示的是等级
1表示:单用户模式
2表示:无网络连接的多用户命令行模式
3表示:有网络连接的多用户命令行模式
4表示:不可用
5表示:带图形界面的多用户模式
6表示:重新启动

MySQL一些配置

  安装基本就大功告成了,可以利用shell指令service mysql start启动mysql服务了,具体如下:

[mysql@node1 data]$ service mysql start
Starting MySQL. SUCCESS!

   shell下mysql的登录指令在/data/tools/mysql-5.7.30-linux-glibc2.12-x86_64/bin目录下,但是每次都要切到这个目录下累不累呀,怎么办呢,设置环境变量对吧,利用sudo vim /etc/profile指令编辑环境变量的文件,然后新增一句如下:

export PATH=$PATH:/data/tools/mysql-5.7.30-linux-glibc2.12-x86_64/bin

  然后wq!保存退出后,别忘了利用shell指令source /etc/profile刷新下环境变量;
  利用root账户登录mysql,因为我们做了环境变量只需要:

mysql -u root -p
#然后输入刚刚日志文件内的临时密码

#如果不做环境变量
/data/tools/mysql-5.7.30-linux-glibc2.12-x86_64/bin/mysql -u root -p
#然后输入刚刚日志文件内的临时密码

  输入密码后进入mysql的客户端环境,有 mysql>字样开头,重置root的密码,赋予root账号完全掌控雷电的权限,然后刷新,mysql指令如下;


mysql> set password=password('123456');

mysql> grant all privileges on *.* to root@'%' identified by '123456';

mysql> flush privileges;

  添加远程访问权限(注意远程能访问的前提必须是远程的终端到这台mysql服务器的网络端口已经开通),指令如下:


mysql> use mysql;

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

mysql> flush privileges;

  注意:如果更改时报错:ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY',就先查询一下是否已更改,最后执行刷新。

  重启mysql服务生效,指令如下:

service mysql restart

MySQL连接工具推荐

  mysql的shell黑框环境下,工作效率比较低 ,而且观看数据也不方便,于是就诞生了很多利用jdbc驱动的连接工具,这里推荐几款,我自己装了也是装了多款的。

  1. SQLyog:DBA的最爱之一,稳定,支持两个mysql服务器之间复制数据库,表,试图等,以及智能提示,Tab键补全关键字等,使用起来非常方便,缺点:复制查询结果指定列复制某一列数据有点烦,收费。
  2. Navicat :收费版本,功能强大,智能提示补全,图形界面相结合,非常人性化,复制查询结果非常方便,除了mysql也支持其他数据库,强大;缺点:默认执行窗口的所有语句,如果要执行选定某一句,一定要鼠标右键,再选择跑指定语句,就选鼠标选定了某一句,再点菜单栏的运行按钮的话,也是执行全部,非常反人类的设计。
  3. DBeaver:跟Navicat很像,而且没有Navicat那个反人类的设计,最重要是免费,免费,免费,除了mysql也支持其他数据库,也支持大数据的Hive,联网后会自动下载相关的jdbc驱动包,缺点 :暂时没发现。
  4. JetBrains DataGrip :除了mysql也支持其他数据库,也支持大数据的Hive,联网后会自动下载相关的jdbc驱动包,用户体验还不错;缺点:收费!
  5. mysql workbench : mysql官方提供的默认连接工具,之前体验过一段时间,大数据量操作 容易卡死,感觉不怎的,但是免费,可以凑合用。
  6. HeidiSQL:传闻这个是Sun公司被收购后,原始mysql团队担心Oracle收购MySQL后乱搞,又自己研发了一款出来,支持图形界面操作,多数据源,免费开源,一样大数据量容易卡死,总体很不错。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于在 CentOS安装和部署 MySQL 5.7.41,您可以按照以下步骤进行操作: 1. 确保您的 CentOS 系统已经安装了 `wget` 和 `tar` 工具。如果没有安装,可以使用以下命令进行安装: ``` sudo yum install wget tar ``` 2. 使用 `wget` 下载 MySQL 5.7.41 的二进制版本。您可以从 MySQL 官方网站下载适用于 CentOS二进制版本,例如: ``` wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz ``` 3. 解压下载的二进制文件: ``` tar -zxvf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz ``` 4. 移动解压后的文件夹到 `/usr/local` 目录下: ``` sudo mv mysql-5.7.41-linux-glibc2.12-x86_64 /usr/local/mysql ``` 5. 创建 MySQL 数据存储目录: ``` sudo mkdir /usr/local/mysql/data ``` 6. 授权 MySQL 数据存储目录给 MySQL 用户: ``` sudo chown -R mysql:mysql /usr/local/mysql/data ``` 7. 初始化 MySQL 数据库: ``` cd /usr/local/mysql sudo ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ``` 8. 启动 MySQL 服务: ``` sudo ./bin/mysqld_safe --user=mysql & ``` 9. 设置 MySQL 环境变量: ``` echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc source ~/.bashrc ``` 10. 运行 MySQL 安全脚本以加强安全性并设置 root 用户密码: ``` sudo ./bin/mysql_secure_installation ``` 11. 您现在应该可以通过以下命令登录到 MySQL: ``` mysql -u root -p ``` 这些步骤将帮助您在 CentOS安装和部署 MySQL 5.7.41。请注意,这只是基本的安装步骤,您可能还需要根据您的实际需求进行其他配置和调整。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

╭⌒若隐_RowYet——大数据

谢谢小哥哥,小姐姐的巨款

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值