Centos7安装mysql5.7

Yum安装

  • 1.1检查系统是否存在自带的数据库
  • 1.2添加Mysql YUM Repository
  • 1.2.1下载MySQL源
  • 1.2.2开始安装Mysql5.7
  • 1.2.3修改密码
  • 1.3远程连接
  • tar.gz
  • 2.1MySql下载
  • 2.2安装&配置:

CentOS 7的默认yum仓库中并没有MySQL5.7,而是MariaDB,所以我们需要手动添加,好在MySQL官方提供了仓库的地址,所以我们能够比较简单地安装MySQL。

Linux上安装软件常见的几种方式:

  • 源码编译
  • 压缩包解压(一般为tar.gz)
  • 编译好的安装包(RPM、DPKG等)
  • 在线安装(YUM、APT等) 以上几种方式便捷性依次增加,但通用性依次下降,比如直接下载压缩包进行解压,这种方式一般需要自己做一些额外的配置工作,但只要掌握了方法,各个平台基本都适用,YUM虽然简单,但是平台受限,网络受限,必要的时候还需要增加一些特定YUM源。 这里我主要是使用yum和tar.gz

Yum安装

1.1检查系统是否存在自带的数据库
  • 检查MariaDB
rpm -qa | grep mariadb

如果存在删除Mariadb

rpm -e --nodeps 名称

其实yum方式安装是可以不用删除mariadb的,安装MySQL会覆盖掉之前已存在的mariadb。

  • 检查MySQL
rpm -qa | grep mysql

删除MySQL 如果不存在(上面检查结果返回空)则跳过步骤

rpm -e --nodeps xxx
1.2添加Mysql YUM Repository
1.2.1下载MySQL源

https://dev.mysql.com/downloads/repo/yum/

可以通过查看系统版本选择相应的源

cat /etc/redhat-release

windows宝塔如何进入mysql命令行 宝塔安装mysql5.7_sql

官方参考文档:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/ 我使用的是MySQL5.7

  • 添加Mysql5.7仓库
rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
  • 确认Mysql仓库成功添加
yum repolist all | grep mysql | grep enabled

如果展示像下面,则表示成功添加仓库:

mysql-connectors-community/x86_64  MySQL Connectors Community    enabled:     51
mysql-tools-community/x86_64       MySQL Tools Community         enabled:     63
mysql57-community/x86_64           MySQL 5.7 Community Server    enabled:    267
1.2.2开始安装Mysql5.7
yum -y install mysql-community-server
  • 启动Mysql 1.启动
sudo systemctl start mysqld
  1. 设置系统启动时自动启动
sudo systemctl enable mysqld
  1. 查看启动状态
sudo systemctl status mysqld
  1. Mysql的安全设置 CentOS上的root默认密码可以在文件/var/log/mysqld.log找到,通过下面命令可以打印出来
cat /var/log/mysqld.log | grep -i 'temporary password'

执行下面命令进行安全设置,这个命令会进行设置root密码设置,移除匿名用户,禁止root用户远程连接等

mysql_secure_installation

5.设置数据库编码为utf8

  • 打开配置文件
sudo vim /etc/my.cnf
  • 在[mysqld],[client],[mysql]节点下添加编码设置
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
  • 重启Mysql即可

sudo systemctl restart mysqld

1.2.3修改密码
  • 初始密码 MySQL第一次启动后会创建超级管理员账号root@localhost,初始密码存储在日志文件中:
sudo grep 'temporary password' /var/log/mysqld.log
  • 修改默认密码
mysql -uroot -p
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 复制代码出现上面的提示是因为密码太简单了,解决方法如下:

使用复杂密码,MySQL默认的密码策略是要包含数字、字母及特殊字符; 如果只是测试用,不想用那么复杂的密码,可以修改默认策略,即validate_password_policy(以及validate_password_length等相关参数),使其支持简单密码的设定,具体方法可以自行百度; 修改配置文件/etc/my.cnf,添加validate_password=OFF,保存并重启MySQL

1.3远程连接
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)
  • 允许root远程访问 默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
  • 设置编码为utf8 查看编码
mysql> SHOW VARIABLES LIKE 'character%';

设置编码 编辑/etc/my.cnf,[mysqld]节点增加以下代码:

[mysqld]
character_set_server=utf8
init-connect='SET NAMES utf8'
  • 设置开机启动
systemctl enable mysqld
systemctl daemon-reload

如果不能远程连接可能是防火墙问题: -开放3306端口

# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# firewall-cmd --reload // 重启防火墙

windows宝塔如何进入mysql命令行 宝塔安装mysql5.7_MySQL_02

tar.gz

2.1MySql下载

下载地址:https://downloads.mysql.com/archives/community/

windows宝塔如何进入mysql命令行 宝塔安装mysql5.7_sql_03

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
2.2安装&配置:
  • 依赖 MySQL依赖libaio库,如果没有先安装一下:
yum install libaio
  • 创建mysql用户 不需要登录的一个系统账号,启动MySQL服务时会使用该账号
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
  • 解压并创建链接
cd /usr/local
 tar zxvf /path/to/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz
 ln -s mysql-5.7.26-linux-glibc2.12-x86_64/ mysql
  • 创建mysql-files目录 这一步并不是必须的,可以设置secure_file_priv的值指向该目录(用于限制数据导入导出操作的目录)
cd mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
  • 初始化
bin/mysqld --initialize --user=mysql

如果初始化时报错如下: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory 是因为libnuma没有安装(或者默认安装的是32位),我们这里需要64位的:

yum install numactl.x86_64

执行完后重新初始化即可 初始化成功后返回结果中有一行包含初始密码,第一次登录时要用到它: A temporary password is generated for root@localhost: 8M0ary878s*U 启用SSL(非必须)

bin/mysql_ssl_rsa_setup
  • 启动
bin/mysqld_safe --user=mysql &

复制代码查看进程可以看到一些默认参数,可以在配置文件中修改这些参数

ps -ef | grep mysql
root     14604 12719  0 00:03 pts/0    00:00:00 /bin/sh bin/mysqld_safe --user=mysql
mysql    14674 14604  0 00:03 pts/0    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=VM_2_24_centos.err --pid-file=VM_2_24_centos.pid
  • 设置环境变量 避免每次执行mysql命令都要加上路径,在/etc/profile中添加: export PATH=$PATH:/usr/local/mysql/bin 设置为服务
cp support-files/mysql.server /etc/init.d/mysqld
service mysqld start|stop|restart|status

开机启动

chkconfig --add mysqld
chkconfig --list mysqld

参考文章: 1. 2.添加链接描述