MySQL安装(yum版)
一、centos7中安装MySQL
1、使用yum安装
# 安装MySQL的yum配置源的rpm包链接 # 需按照Linux系统版本进行选择 # 一个rpm包中包含多个版本的MySQLyum源 https://dev.mysql.com/downloads/repo/yum/ # 多提一嘴 # 查看Linux发行版版本号命令 cat /etc/os-release cat /etc/redhat-release # 查看Linux内核版本号 uname -r uname -a
安装rpm包
# 需要用到wget yum install -y wget wget https://repo.mysql.com/mysql-community-release-el7.rpm # 下载 rpm -ivh mysql-community-release-el7.rpm # 安装
在msyql-community.repo中有多个版本的MySQL,将需要下载的MySQL版本源中的enabled设置为1,其它版本设置为0
[root@yun02 yum.repos.d]# cat mysql-community.repo # Enable to use MySQL 5.5 [mysql55-community] name=MySQL 5.5 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql # Enable to use MySQL 5.6 [mysql56-community] name=MySQL 5.6 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql # Enable to use MySQL 5.7 [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 # 这里若要安装,将其设置为1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
安装MySQL
- 在安装MySQL前,首先要将系统里原有的数据库清理干净;ceontos7开始系统默认预装mariadb,之前预装的是MySQL
CentOS7之前
systemctl stop mysqld # 先关闭服务 rpm -qa | grep mysqld # 在Linux系统中列出所有已安装的RPM软件包,然后筛选出与mysqld相关的包 # 然后按照列出的顺序依次删除 rpm -e --nodeps mysql-community-server # rpm -e:表示 erase,即卸载指定的软件包。 rpm -e --nodeps mysql-community-client # --nodeps:表示忽略依赖关系,强制卸载,即使其他软件包依赖这个包也不做检查。 rpm -e --nodeps mysql-community-libs rpm -e --nodeps mysql-community-common # 卸载完基本的环境后,我们要清理依赖的文件(数据库配置文件及数据库数据文件) -- 删除数据库配置文件(一般情况下卸载了mysql这个文件也会被自动删除) rm -rf /etc/my.cnf -- 删除数据库数据文件(包含系统数据库表和自定义数据库表),但是如果陌生服务器,此步骤谨慎!!!!!! rm -rf /var/lib/mysql -- 删除日志临时文件(比如安装后产生密码的文件,不删除会发现安装后查询2个初始密码,但以下面的为主) rm -rf /var/log/mysqld.log
CentOS7之后(含7版本)
rpm -qa | grep mariadb # 查询 rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64 # 删除 -- 删除数据库配置文件(一般情况下卸载了mysql这个文件也会被自动删除) rm -rf /etc/my.cnf -- 删除数据库数据文件(包含系统数据库表和自定义数据库表),但是如果陌生服务器,此步骤谨慎!!!!!! rm -rf /var/lib/mysql -- 删除日志临时文件(比如安装后产生密码的文件,不删除会发现安装后查询2个初始密码,但以下面的为主) rm -rf /var/log/mysqld.log
- 安装MySQL
yum install -y mysql-server # 报错情况 yum install mysql-community-server --nogpgcheck # 若出现以下情况输入该命令跳过密钥检查即可
启动MySQL
在使用该命令前需要确定mysql用户和用户组是否创建(一般情况下安装MySQL的过程中系统会自动创建) [root@yun02 ~]# id mysql uid=27(mysql) gid=27(mysql) 组=27(mysql) mysqld --initialize # 初始化MySQL数据库的数据目录,为新安装的MySQL实例准备“首次使用”的基础数据环境。 mysqld:这是 MySQL服务器进程(数据库服务守护程序) --initialize:表示初始化数据目录,其作用包括: 创建MySQL系统库(如 mysql、information_schema、performance_schema 等)。 生成MySQL数据库所需的目录结构和数据文件。 随机生成一个临时root密码(存放在 MySQL的错误日志文件中)。 注意:安装MySQL后,第一次使用前必须初始化数据库目录,否则MySQL服务无法启动。 使用前提: 数据目录必须是空的。 具有相应的文件权限(通常是 mysql 用户)。 # 多提一嘴 mysqld --initialize --user=mysql 指定以 mysql 用户身份进行初始化。 初始化完成后,数据目录(通常是 /var/lib/mysql)下会生成必要的数据库文件和系统库。
-
命令 作用 mysqld --initialize
随机生成root密码,安全性较高(生产环境推荐)。 mysqld --initialize-insecure
不生成root密码,root账户空密码(测试环境可用,风险较高)。 将 /var/lib/mysql/ 的属主属组改为mysql用户和用户组
chown -R mysql:mysql /var/lib/mysql/ # 出现以下报错说明没有写的权限(权限不足报错) 根本原因 ibdata1 文件权限不正确或文件系统只读,导致 MySQL 无法对其写入。常见原因有: 权限问题(最常见): ibdata1 文件及其所在目录的属主、属组 不属于 MySQL 运行账号(通常是 mysql)。 文件权限不足,mysql用户没有写入权限。 文件系统只读: 例如数据盘以只读方式挂载(可以通过 mount 查看)。 SELinux或AppArmor限制(部分系统)。 磁盘空间耗尽(较少见)。
启动
systemctl start mysqld # 启动无报错可输入 systemctl status mysqld 查看MySQL服务的状态 # 无报错可以在MySQL的日志文件中寻找生成的临时密码 grep 'temporary password' /var/log/mysqld.log # 使用临时密码登录 mysql -uroot -p # 登录后执行以下命令修改root用户密码 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword!';