本文整理在Linux上安装MySQL的两种方式,分别是压缩包解压方式安装与RPM软件包方式安装。可以先通读全文,查看两种安装方式的区别,最后选择使用哪种方式进行安装。(推荐第一种)
一、压缩包解压方式
环境检查
Linux系统版本:CentOS7
MySQL版本:mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
注意:本文演示的是5.7.25版本的,版本一定要完全一致,小版本之间也会出现安装步骤不一致的问题。经过多次试验,以下步骤是能够一次安装成功的。
下载地址:https://downloads.mysql.com/archives/community/
检查Linux系统上是否装有旧版的Mysql
rpm -qa | grep 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.56-2.el7.x86_64
软件安装
软件上传与解压
将mysql软件包上传到 /usr/local目录下
解压,并重命名文件夹
tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.25-linux-glibc2.12-x86_64 mysql
添加mysql用户和用户组
先检查是否已经有mysql用户和mysql用户组
cat /etc/passwd | grep mysql
cat /etc/group | grep mysql
若是以下情况,表示已经存在mysql用户和组,无需另外创建,否则需要创建mysql的用户和用户组
存在mysql组的情况:
一般mysql用户是没有创建的,我们通过下面的命令进行创建
groupadd mysql
useradd mysql -g mysql
安装数据库
创建data文件夹
mkdir -p /usr/local/mysql/data
将文件夹的所有者和用户组改为mysql
chown mysql:mysql -R /usr/local/mysql/data
编辑配置文件 vim /etc/my.cnf
[client]
default-character-set=utf8
[mysqld]
port=3306
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
character_set_server=utf8
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid
[mysql]
default-character-set=utf8
进入bin目录,初始化数据库
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
添加mysql服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动mysql
service mysql start
查看初始密码,并复制密码用于下面的登录
cat /usr/local/mysql/data/mysql.log
登录mysql
cd /usr/local/mysql/bin
./mysql -u root -p
修改密码
set password for root@localhost = password('123456');
开机启动
chkconfig --add mysql
检查开机启动项
chkconfig --list
添加环境变量 vim /etc/profile,在最后加上
export PATH=$PATH:/usr/local/mysql/bin
使环境变量生效
source /etc/profile
登录mysql,检查字符集(按照上述的配置,字符集是没有问题的,都是utf8)
mysql -uroot -p
show variables like '%char%';
二、RPM方式安装
使用该方式安装mysql类似于在windows系统上的用exe软件安装程序。下面同样介绍的是安装mysql5.7.25的版本。
环境检查
Linux系统版本:CentOS7
MySQL版本:mysql 5.7.25
下载软件时以下四个需要同时下载,libs和common为依赖:
下载地址:https://downloads.mysql.com/archives/community/
检查Linux系统上是否装有旧版的Mysql
rpm -qa | grep 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.56-2.el7.x86_64
软件安装
上传上述的四个软件到第三方软件包存放路径 /opt
使用以下命令进行安装(i:安装,v:显示安装过程,h显示进度)
rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm mysql-community-client-5.7.25-1.el7.x86_64.rpm mysql-community-common-5.7.25-1.el7.x86_64.rpm mysql-community-libs-5.7.25-1.el7.x86_64.rpm
检查是否安装成功
rpm -qa | grep -i mysql
检查是否创建用户和用户组
cat /etc/passwd | grep mysql
cat /etc/group | grep mysql
格式:用户名:密码:用户id:组id 登录的默认shell
或者使用mysqladmin --version查看
启动/停止服务
service mysqld start //注意不同的系统,看是否要加d
service mysqld stop
修改密码
查看初始密码
cat /var/log/mysqld.log | grep "A temporary"
用初始密码登录:mysql -uroot -p
修改密码:alter user root@localhost identified by ‘123456’;
使用该语句修改密码需要先修改mysql的策略要求,即修改参数,否则会提示:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql的validate_password_policy如下
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
修改两个参数:
set global validate_password_policy=0;
set global validate_password_length=1;
然后修改密码:
alter user root@localhost identified by '123456';
开机启动
chkconfig mysqld on
检查服务是否自启动(按q退出)
systemctl list-unit-files
或者输入ntsysv 检查mysql服务是否开机启动(按Tab键切换到OK)
数据库文件的安装配置位置:
/var/lib/mysql/ 数据库数据的存放位置
/usr/share/mysql 配置文件目录位置
/usr/bin mysqladmin等命令
/etc/my.cnf 配置文件的位置
/var/log/mysqld.log 日志文件位置
修改乱码问题
show variables like ‘%char%’;
默认情况下,客户端和服务器的字符集都是latin1(拉丁),中文情况下会乱码
拷贝一份配置文件
cp /etc/my.cnf /etc/my.cnf.bak
修改my.cnf配置 vim /etc/my.cnf
添加或修改以下信息:
[client]
default-character-set=utf8
[mysqld]
port=3306
character-set-server=utf8
collation-server=utf8_general_ci
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
...
[mysql]
default-character-set=utf8
修改完配置信息后,重启mysql服务
service mysqld restart
注意:原先创建的数据库仍然是不支持中文的,需要另外创建一个数据库,可以看到支持中文。
检查字符集:
总结:上述两种方式都可以安装mysql数据库,但第二种虽然安装过程简单,但是很多路径使用的都是默认的路径,我们在安装时无法自己指定这些路径,因此推荐第一种方式进行安装。