部署说明

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

  • 源码编译
  • 压缩包解压(一般为tar.gz)
  • 编译好的安装包(RPM、DPKG等)
  • 在线安装(YUM、APT等)

部署方式简单程度:YUM > RPM > tar.gz > 源码,本文介绍tar.gz方式.

部署步骤

  1. 卸载已有
# 通过rpm方式安装的rpm -qa|grep mysql# 如果有, 卸载rpm -e --nodeps xxx# 查找mysql文件夹whereis mysqlfind / -name mysql

  1. 下载tar.gz文件, mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

由于国外资源下载缓慢,可以使用华为开源镜像

  1. 安装依赖包
yum -y install make gcc-c++ cmake bison-devel ncurses-devel numactl libaio

  1. 创建系统用户和组
# 创建组groupadd mysql# 创建不需要登录的系统账号,启动MySQL服务时会使用该账号useradd -s /sbin/nologin -g mysql -M mysql# useradd -r -g mysql -s /bin/false mysql# useradd -r -g mysql mysql

  1. 解压到/usr/local/
# 解压tar -zxvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz# 重命名mv mysql-5.7.31-linux-glibc2.12-x86_64 mysql# 移动到/usr/local/下mv mysql /usr/local/# mysql目录下创建data文件夹cd /usr/local/mysql/mkdir data# 设置权限chown -R mysql:mysql /usr/local/mysqlchmod -R 755 /usr/local/mysql

  1. 初始化
# 注意打印日志最后返回的root用户临时密码,登录时用到bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql# 初始化日志2020-07-27T07:13:42.627407Z 1 [Note] A temporary password is generated for root@localhost: 4Mt4Zka<6j)&

  1. 编辑配置文件/etc/my.cnf
# 如果有这个文件,先清空[root@localhost bin]#  vi /etc/my.cnf[mysqld]datadir=/usr/local/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1

  1. 启动
/usr/local/mysql/support-files/mysql.server start

  1. 添加软链接
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 mysqld start|stop|restart|statusservice mysql restart# 添加环境变量,可选echo "PATH=$PATH:/usr/local/mysql/bin  " >> /etc/profile  
source /etc/profile

  1. 设置开机启动
# 将服务文件拷贝到init.d下,并重命名为mysqlcp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld# 赋予可执行权限chmod +x /etc/init.d/mysqld# 添加服务chkconfig --add mysqld# 显示服务列表chkconfig --list

  1. 登录并修改root密码
-- 使用初始化生成的临时密码登录mysql -u root -p-- 修改密码set password for root@localhost = password('123456');--  ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';-- 开放远程连接use mysql;update user set user.Host='%' where user.User='root';flush privileges;