CentOS 7安装MySQL 非yum或rpm安装

本文使用的数据库版本是MySQL 5.7.26(tar.gz)

本文既不通过rpm,也不通过yum安装mysql。

通过包名可看出MySQL包的区别:

  • tar.gz包:可以安装指定版本的mysql【源程序方式】
  • repo包:用yum安装
  • rpm包:rpm安装

准备工作

Centos7最小化安装是不自带MySQL的,但默认内部集成MariaDB,建议不喜欢折腾的同学直接yum install -r mariadb-server方式。

获得干净的MySQL安装环境

**对自带的MariaDB相关操作:**查看、卸载、检查

  • 查看进程、杀死进程:ps -f | grep mysqldpkill -9 mysqld
  • 查看是否已安装MariaDB、或一些MariaDB相关的模块:rpm -qa | grep mariadb
  • 强制卸载MariaDB:rpm -e --nodeps [mariadb包或相关模块]
  • 再次检查卸载干净,若已看不到相关mariadb打印了即可:rpm -qa | grep mariadb

检查是否安装过MySQL:

  • rpm -qa | grep -i mysql
  • 若安装过,则卸载:rpm -e 相关软件包名

安装依赖libaio

libaio是Linux下的一个异步非阻塞接口,它提供了以异步非阻塞方式来读写文件的方式,读写效率比较高。

先查看是否已经安装libaio:

  • ps aux | grep libaio
  • ps -ef | grep libaio

没有的话,就安装:

  • yum install -y libaio
  • yum install -y cmake make gcc gcc-c++ libaio ncurses ncurses-devel

下载并解压MySQL包

MySQL官网-下载显示的MySQL Community Server----5.7.26—Linux-Generic(glibc 2.12)(x86,64-bit)的tar.gz包,如果官网下载太慢,可以下方通过镜像下载。

1)下载

curl -# -O https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

2)解压

tar zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

3)移动到指定目录,并重命名

cp -r mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql

添加系统mysql组、mysql用户

这是为了方便管理。

添加系统mysql组

groupadd mysql

添加mysql用户

useradd -r -g mysql mysql

如有已有就略过此步。

groups 查看当前登录用户的组内成员
groups xxx 查看xxx用户所在的组,以及组内成员
cat /etc/passwd 查看所有的用户信息
删除某用户组和用户,步骤:

  • 重启Linux reboot
  • 重启后,用这种方式登录:su - root
  • 删除用户 userdel -r 用户名,同时删除用户home目录
  • 删除用户组 groupdel 用户组名

安装 MySQL

安装前请确保你的MySQL是在/url/local/mysql目录下,其他目录不行(暂时还没有找到解决方案)

切到mysql目录

cd /usr/local/mysql

在修改之前,/usr/local/mysql文件夹拥有者是root。修改后,ll查看。虽然拥有者变成了mysql,但还是root在操作

修改当前目录拥有者为mysql用户

chown -R mysql:mysql ./

初始化数据库,注意临时密码。并忽略Warning。

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

可以执行echo $?验证,如果输出0代表 上一步成功

创建RSA private key

bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

此时,ll data,发现有些文件拥有者不是mysql,而是root。所以:修改/usr/local/mysql/data目录拥有者为mysql用户

chown -R mysql:mysql data

配置文件 my.cnf

MySQL 5.7.26解压后的support-files文件夹下没有my_default.cnf文件,也就没例子来参考,所以新建my.cnf文件。

vi /etc/my.cnf

my.cnf文件内容如下:

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不区分大小写
lower_case_table_names = 1
#不开启sql严格模式
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid

添加开机启动

cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld
vi /etc/init.d/mysqld # 添加路径(等号前面已写好了,只需添加后面)

添加路径(等号前面已写好了,只需添加后面)

...
...
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
....

启动服务

service mysqld start

加入开机起动

chkconfig --add mysqld #加入开机起动

这样操作后,就不必每次进去系统后,手动启动MySQL了。

登录MySQL、并修改用户密码

添加软连接

ln -s /usr/local/mysql/bin/mysql /usr/bin

进入MySQL

mysql -uroot -p

修改MySQL用户密码(在此就是修改root用户的密码):

如果需要使用远程登录,则下方步骤中设置密码的语句要使用这条:alter user 'root'@'%' identified by '符合MySQL5.7安全策略的密码';。增加root用户指定可以任意IP登录,如果想限制只能让指定IP登录请把%替换成IP地址
如果不需要,则语句中的%改为lochlhost即可。

MySQL 5.7起,遵循其密码安全策略,密码必须包含数字、字母,且不能少于一定位数,如果需要设置简易密码,比如为了自己测试,不想密码设置得那么复杂(设置root的密码为123456 或 111111)。【没有这个需求的,可忽略步骤1)、2)、3)、4)。直接使用alter user 'root'@'localhost' identified by '符合要求的密码';

1)查看validate_password是否安装及其配置情况:

SHOW VARIABLES LIKE 'validate_password%';

2)若是空的,则说明没有安装。需要安装:

INSTALL PLUGIN validate_password SONAME 'validate_password.so';

3)验证是否安装成功:

SHOW VARIABLES LIKE 'validate_password%';

4)接着设置参数

set global validate_password_policy=0;
set global validate_password_length=1;

修改用户root登陆mysql的密码为 111111

alter user root@'localhost' identified by '111111';

授权新用户

grant all privileges on *.* to 'root'@'localhost' with grant option;

刷新权限

flush privileges;
show grants for current_user();

FAQ 1:MySQL5.7允许远程用户登录设置时报错

alter user 'root'@'%' identified by '111111';

设置远程登录,报错!!

这是因为:新版MySQL用户权限标示是 user 和 host 组成的二元组,上述语句需要确保该二元组存在,否则会报这个错。
解决:
添加新用户。添加其他用户、密码也是一样的方法

create user 'root'@'%' identified by '111111';

FAQ 2:忘记管理员密码或想重新设置密码,怎么办?

  • vi /etc/my.cnf,在[mysqld]的段中加上一句:skip-grant-tables
  • 重新启动mysqld,/etc/init.d/mysqld restart或用service mysqld restart
  • 进入mysql,选择数据库mysql> use mysql
  • MySQL 5.7的数据库没有了password字段,得用authentication_string字段
update mysql.user set authentication_string=password('重设的符合条件的密码') where user='root' ;
flush privileges;
  • 刷新权限mysql> flush privileges;

skip-grant-tables选项会让MySQL服务器跳过验证步骤,允许所有用户以匿名的方式,无需做密码验证直接登陆MySQL服务器,并且拥有所有的操作权限。

文章参考

linux如何查看所有的用户和组信息
linux下查看所有用户及所有用户组
Linux下rpm、yum区别
源程序、RPM包命名规范
理由参考

CentOS 7安装MySQL 非yum或rpm安装相关推荐

  1. centos安装mysql怎么远程访问_centos上安装mysql并设置远程访问的操作方法

    1.下载mysql的repo源 2.安装mysql-community-release-el7-5.noarch.rpm包 $ sudo rpm -ivh mysql-community-releas ...

  2. centos 6.7 mysql密码忘记_CentOS 7安装MySQL5.7以及忘记root密码怎么办

    一.通过Yum命令安装 1.下载rpm安装源 rpm文件地址:https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm ...

  3. yum的方式安装mysql_Linux安装mysql之yum安装方式

    1.安装rpm包 直接使用yum -y install 命令安装mysql是无法安装mysql的高级版本,需要先安装带有可用的mysql5系列社区版资源的rpm包,输入如下命令进行安装. 2.查看my ...

  4. centos7 无法yum安装mysql_CentOS7 安装mysql(YUM源方式)

    1.下载mysql源安装包 2.安装mysql源 $ yum localinstall mysql57-community-release-el7-8.noarch.rpm 3.检查mysql源是否安 ...

  5. linux下安装mysql数据库[yum install版]

    原文链接:linux下安装mysql数据库[yum install版] 在CentOS7中默认安装有MariaDB,这个是MySQL的分支,yum直接覆原有MariaDB, 或安装包报错无法解决依赖问 ...

  6. Centos7安装Mysql(yum 安装)

    安装 mysql 的 rpm 包 rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 说明:不同版本的 ...

  7. Linux CentOS7安装MySQL(yum方式)

    记录第一次安装 MySQL . 1)先检查系统是否安装 MySQL . yum list installed mysql* rpm -qa | grep mysql*  2)查看有没有 MySQL 安 ...

  8. yum的方式安装mysql_CentOS 通过yum方式快速安装MySQL

    一.去官网查看最新安装包 根据自己的需要找相应的版本 二.下载MySQL源安装包 wget http://dev.mysql.com/get/mysql57-community-release-el7 ...

  9. centos7安装mysql允许远程连接_CentOS7安装Mysql并配置远程访问

    (su root登录到root账户) 下载repo源 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 安装rpm ...

最新文章

  1. 贾扬清感谢信:阿里开源10年,致敬千万开源人
  2. Git——git push 错误[error: src refspec master does not match any]解决方案
  3. 关于dlg和pro的问题
  4. linux路由内核实现分析(一)----邻居子节点(1)
  5. spring boot + mybatis + layui + shiro后台权限管理系统
  6. 分享一个c++ 加密算法 ,在百度贴吧找的,比较好玩
  7. Linux命令总结(之二)Find
  8. 063 模块的四种形式
  9. c语言编程题作弊技巧,全国计算机二级C语言上机编程题详细分析(1)
  10. 【友盟+】助力故宫博物院数据化智能运营
  11. 数据分析之A股市场技术分析是否可行
  12. DOM drag 事件
  13. 软考- 高级信息系统项目管理师,第一章 信息化与信息系统
  14. 潇洒郎:彻底解决Markdown图片问题——无需上传图片——无需网络——转发给他人图片无缺失
  15. [PTA] 7-6 厘米换算英尺英寸
  16. Win10 电脑屏幕亮度随背景颜色变化而变化
  17. TabLayout使用介绍
  18. 收藏多个不错的画架构图工具
  19. 第八届蓝桥杯 java B组 日期问题
  20. LeNet:Handwritten Digit Recognition with a Back-Propagation Network

热门文章

  1. 为什么曾经“火极一时”的曲面屏,如今却越来越被冷场?
  2. 轻松模式之tars框架的docker安装
  3. Windows服务器下安装PHP ASP JSP并存共用80端口
  4. 智能手表UX开发的4条基本经验
  5. 物联网时代 智能停车应用技术分析
  6. 300-700题红题第二题
  7. LAMP安装明细(apache,mysql,php)
  8. 2020年3月6日,部分iPhone无法连接到App Store 解决办法
  9. win7开机启动项怎么设置_怎么设置u盘为第一启动项bios u盘第一启动项bios设置方法【详解】...
  10. 云台设备指令通讯-串口通讯、UDP、TCP通讯应用