CenteOS 7下安装MySQL5.7.37

305 阅读3分钟

前期准备工作

1.检查用户

  • 检查mysql用户组和mysql用户是否已经存在,如果不存在则创建:
# 查看mysql用户组是否存在
cat /etc/group | grep mysql
# 查看mysql用户是否存在
cat /etc/passwd |grep mysql
# 创建mysql用户组
groupadd mysql
# 创建mysql用户
useradd -r -g mysql mysql

开始安装

1.下载安装包

  • 从官网下载Linux安装包,地址:cdn.mysql.com//Downloads/… 可以直接将安装包下载到本地,然后将安装包从本地上传到服务器上,或者直接使用命令将安装包下载到服务器上,命令如下:
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.37-el7-x86_64.tar

注意:此时下载下来的是tar包,不是tar.gz包

2.解压

  • 下载完成后,执行解压命令:
tar -xvf mysql-5.7.37-el7-x86_64.tar -C /usr/local/
  • 解压出来的是2个tar.gz包:mysql-5.7.37-el7-x86_64.tar.gz和mysql-test-5.7.37-el7-x86_64.tar.gz包。此时再次执行解压命令:
tar -zxvf mysql-5.7.37-el7-x86_64.tar.gz -C /usr/local
  • 解压完成后,在/usr/local目录下可以看到一个mysql-5.7.37-el7-x86_64解压目录。给解压目录改名字:
mv mysql-5.7.37-el7-x86_64 mysql

3.创建目录

  • 在mysql目录下创建data目录:
mkdir /usr/local/mysql/data
  • 更改mysql目录下的目录和文件的所属用户和对应权限:
chown -R mysql:mysql /usr/local/mysqlchmod -R 755 /usr/local/mysql

4.编译安装

  • 编译安装并初始化mysql(注意:在输出日志末尾会输出数据库管理员临时密码):
./mysqld --initialize --user=root --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
  • 编辑my.cnf文件,添加或修改配置:
vim /etc/my.cnf
  • 新增或修改内容:
[mysqld]
datadir=/usr/local/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
# 是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间,可以通过查看数据目录,查看文件结构的区别;
innodb_file_per_table=1
# 是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效;
lower_case_table_names=1
# 设置数据库默认字符集,如果不设置默认为latin1
character_set_server=utf8
symbolic-links=0
[mysqld_safe]
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid

乱码解决方法

a. 修改my.cnf文件

vi /etc/my.cnf

b. 在[mysqld]下加入代码:

character_set_server=utf8

c. 在[ mysql ]下加入代码:

default-character-set=utf8

5.启动MySQL服务器

  • 进入support-files目录:
cd /usr/local/mysql/support-files
  • 启动MySQL服务:
./mysql.server start

如下图所示,则表示MySQL数据库安装成功:

  • 查看MySQL服务进程:
ps -ef|grep mysql

6.相关配置

  • 添加软链接:
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
  • 重启MySQL数据库:
service mysql restart

7.配置MySQL

  • 登录MySQL,修改设置:
mysql -u root -p
  • 输入初始化数据库时,打印出来的临时密码,登录成功后,修改数据库密码:
mysql> set password for root@localhost=password('***');
  • 开启支持远程连接功能,否则远程无法通过工具连接数据库:
mysql>use mysql;msyql>update user set user.Host='%' where user.User='root';mysql>flush privileges;

通过远程连接工具测试是否可以连接数据库。

8.设置开机启动

  • 将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  • 添加可执行权限
chmod +x /etc/init.d/mysqld
  • 添加服务
chkconfig --add mysqld
  • 查看服务列表
chkconfig --list

如果忘了MySQL数据库密码

a. 停掉mysql服务

 service mysql stop

b. 修改/etc/my.cnf 文件,增加 skip-grant-tables ,作用是登录时跳过密码校验

c. 登录 

mysql -u root

d. 修改密码 依次执行以下操作

mysql>use mysql;
mysql>update mysql.user set authentication_string=password('123456') where user='root';
mysql>flush privileges;

e. 重启mysql服务

service mysql restart

(完)