部署说明
Linux上安装软件常见的几种方式:
- 源码编译
- 压缩包解压(一般为tar.gz)
- 编译好的安装包(RPM、DPKG等)
- 在线安装(YUM、APT等)
部署方式简单程度:YUM > RPM > tar.gz > 源码,本文介绍tar.gz方式.
部署步骤
- 卸载已有
# 通过rpm方式安装的rpm -qa|grep mysql# 如果有, 卸载rpm -e --nodeps xxx# 查找mysql文件夹whereis mysqlfind / -name mysql
- 下载tar.gz文件, mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
由于国外资源下载缓慢,可以使用华为开源镜像
- 安装依赖包
yum -y install make gcc-c++ cmake bison-devel ncurses-devel numactl libaio
- 创建系统用户和组
# 创建组groupadd mysql# 创建不需要登录的系统账号,启动MySQL服务时会使用该账号useradd -s /sbin/nologin -g mysql -M mysql# useradd -r -g mysql -s /bin/false mysql# useradd -r -g mysql mysql
- 解压到/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
- 初始化
# 注意打印日志最后返回的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)&
- 编辑配置文件/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
- 启动
/usr/local/mysql/support-files/mysql.server start
- 添加软链接
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
- 设置开机启动
# 将服务文件拷贝到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
- 登录并修改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;