安装环境
服务器环境:CentOS Linux release 7.7.1908 (Core)
软件介绍
MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
- MySQL 是开源的,所以你不需要支付额外的费用。
- MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
- MySQL 使用标准的 SQL 数据语言形式。
- MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
- MySQL 对PHP有很好的支持,PHP 是目前最流行的 Web 开发语言。
- MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
- MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。
软件下载
Mysql下载地址
找到对应的版本,进行下载
软件安装
注意
本文档讲解安装版本为mysql-5.7.13,对于5.7.24之后的版本,不适用此说明文档,主要原因在于之后版本的mysql配置文件的目录位置和结构有所改变,使用此说明可能会出现找不到配置文件或者配置后不生效的情况。
安装过程中务必保证文件路径的前后统一,否则可能会导致不可预期的结果,推荐直接使用文中的命令进行操作。
安装前准备
安装前,我们可以通过如下命令检测系统是否已安装 MySQL
rpm -qa | grep mysql
执行完命令之后若没有输出任何信息则说明当前环境没有安装mysql,可直接安装。
反之,若系统已安装mysql则会输出已安装的mysql版本信息,如图所示:
若发现安装的mysql版本与实际需求不匹配,则需要先卸载已安装的版本,卸载命令如下所示:
普通删除
rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64
强力删除,适用于删除过程中有文件被占用的情况
rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64
检查否存在 mariadb 数据库,如有就将其卸载
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
安装包上传
将下载好的安装包上传到服务器目录下,进入上传安装包的目录
cd /usr/local/installationPackage
安装包解压
tar -zxvf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
解压完成之后,可以在当前目录下看到一个名为【mysql-5.7.13-linux-glibc2.5-x86_64】的目录。
目录名字过长,可以进行修改
mv mysql-5.7.13-linux-glibc2.5-x86_64 mysql-5.7.13
我们需要将该目录下所有数据移动到我们需要安装的文件夹当中,比如usr/mysql目录下。
在usr目录下新建该mysql文件夹
mkdir /usr/mysql
将解压后的目录移动到创建的文件夹中
mv mysql-5.7.13 /usr/mysql
配置项修改
添加系统mysql组和mysql用户
检查mysql组和用户是否存在
cat /etc/group | grep mysql
若存在,则能查看到如下类似信息
mysql:x:490:
cat /etc/passwd | grep mysql
若存在,则能查看到如下类似信息
mysql:x:496:490::/home/mysql:/bin/bash
若不存在,则执行如下命令添加mysql组和mysql用户
groupadd mysql
useradd -r -g mysql mysql
useradd -r参数表示mysql用户是系统用户,不可用于登录系统
安装并启动mysql
创建data目录
cd /usr/mysql/mysql-5.7.13
mkdir data
将/usr/mysql/mysql-5.7.13的所有者及所属组改为mysql
chown -R mysql.mysql /usr/mysql/mysql-5.7.13
在/usr/mysql/mysql-5.7.13/support-files目录下找到my-default.cnf 进行修改
[mysqld]
basedir=/usr/mysql/mysql-5.7.13
datadir=/usr/mysql/mysql-5.7.13/data
port=3306
socket=/tmp/mysql.sock
character-set-server=utf8
log-error=/usr/mysql/mysql-5.7.13/data/mysqld.log
pid-file=/usr/mysql/mysql-5.7.13/data/mysqld.pid
lower_case_table_names=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
拷贝文件到/etc目录,如果提示是否覆盖,输入"y"
cp my-default.cnf /etc/my.cnf
初始化 mysqld
cd /usr/mysql/mysql-5.7.13/bin
./mysqld --initialize --user=mysql --basedir=/usr/mysql/mysql-5.7.13/ --datadir=/usr/mysql/mysql-5.7.13/data/
注意:执行上面命令之后可能会出现以下错误
出现该问题首先检查该链接库文件有没有安装使用 命令进行核查
rpm -qa|grep libaio
运行命令后发现系统中无该链接库文件
yum install libaio-devel.x86_64
安装成功后,继续运行数据库的初始化命令,此时可能会出现如下错误
执行如下命令后
yum -y install numactl
执行无误之后,再重新执行初始化命令,无误之后再进行下一步操作!
初始化完成之后,查看日志
vim /usr/mysql/mysql-5.7.13/data/mysqld.log
临时密码
A temporary password is generated for root@localhost: :9gkl=AHod:i
:9gkl=AHod:i 就是数据库初始化临时密码
把启动脚本放到开机初始化目录
cd /usr/mysql/mysql-5.7.13
cp support-files/mysql.server /etc/init.d/mysql
启动mysql服务
service mysql start
登录mysql,密码为初始化密码
cd /usr/mysql/mysql-5.7.13
./bin/mysql -u root -p
修改密码
执行下列命令
mysql> set password=password('root');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> grant all privileges on *.* to root@'%' identified by 'root';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
添加远程访问权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
刷新
FLUSH PRIVILEGES;
配置环境变量
vim /etc/profile
export MYSQL_HOME=/opt/mysql/mysql-5.7.13
export PATH=$PATH:$MYSQL_HOME/bin
添加自启动服务
chkconfig --add mysql
chkconfig mysql on