STEP 1. 下载
去往官方下载MySQL包.http://dev.mysql.com
mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
STEP 2. 解压缩
[root@study mysql]pwd
/root/soft-install/
[root@study mysql]tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
STEP 3. 将解压后的目录的内容移动到指定的安装目录下,我选择在/data/mysql, 建立相关文件以及修改文件和目录的属性
[root@study mysql]test -d /data/mysql || mkdir /data/mysql
#移动第二步中解压目录中的所有数据到 /data/mysql中
[root@study mysql] mv mysql-5.7.25-linux-glibc2.12-x86_64/* /data/mysql
# 查看是否有mysql用户名和mysql用户组
[root@study mysql] cat /etc/passwd | grep mysql
[root@study mysql] cat /etc/group | grep mysql
#如果存在,则删除用户和用户组
[root@study mysql] userdel -r mysql
# 接下来,新建mysql用户(系统账号)、mysql用户组
[root@study mysql] groupadd mysql
[root@study mysql] useradd -r -s /sbin/nologin -d /data/mysql -g mysql mysql #创建mysql用户为系统账号,禁止登陆系统,并指定家目录为/data/mysql,所属组为mysql组。
#更改/data/mysql目录的用户以及用户组
[root@study mysql]chown -R mysql:mysql /data/mysql
# 创建MySQL 数据目录
[root@study mysql]mkdir /var/mysql
# 更改目录权限(用户以及用户组)
[root@study mysql]chown -R mysql:mysql /var/mysql
# 创建 日志
[root@study mysql] test -d /var/log/mysql || mkdir /var/log/mysql
[root@study mysql] chown -R mysql:mysql /var/log/mysql
# 创建 pid进程文件
[root@study mysql] touch /data/mysql/mysqld.pid
[root@study mysql] chown mysql.mysql /data/mysql/mysqld.pid注意:pid文件是mysql启动时自动创建的文件,无需用户手动单独创建,该文件是在mysql初始化(初始化时要求mysql的数据库目录文件夹为空,否则初始化失败)时提前指定的,否则为系统默认的pid文件。
例如:mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.20 --datadir=/data/mysql --pid-file=/data/mysql/mysqld.pid
STEP 4. 修改配置文件 /etc/my.cnf
[root@study mysql] vim /etc/my.cnf
###
[mysqld]
# 数据目录
datadir=/var/mysql
# 基础目录
basedir=/data/mysql
# MySQL监听端口
port=3306
# soket文件
socket=/tmp/mysqld.sock
# 服务器字符集
character-set-server = utf8
symbolic-links=0
[mysqld_safe]
# mysql 日志文件
log-error=/var/log/mysql/mysqld.log
# mysql pid文件
pid-file=/data/mysql/mysqld.pid
STEP 5. 1安装初始化
[root@study mysql] /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/data/mysql --datadir=/var/mysql
初始化完毕,生成msql的临时登陆密码,在屏幕上显示,
2019-12-01T04:51:27.589838Z 1 [Note] A temporary password is generated for root@localhost: je_BjKq;i54%
STEP 5. 2安装初始化
[root@study mysql] /usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/mysql --datadir=/var/mysql
STEP 6.1 启动测试以及加入系统服务
linux7版本使用此方式加入,无法使用systemctl进行启动/关闭服务,如需使用systemctl命令操作,需要加入到system启动文件中。
mysqld_safe脚本可以启动任何安装方式安装的Mysql,并总是尝试将服务和数据库与工作目录相关联,需要使用ln -s /tmp/mysqld.sock /var/lib/mysql/mysql.sock方可。
[root@study mysql] cd /data/mysql/
[root@study mysql] cp support-files/mysql.server /etc/init.d/mysqld
[root@study mysql] vim /etc/init.d/mysqld #添加basedir路径,添加datadir路径,添加mysql pid文件路径
[root@study mysql]chkconfig --add mysqld
[root@study mysql]chkconfig mysqld on
[root@study mysql]service mysqld start
[root@study mysql]ln -s /data/mysql/bin/* /usr/bin/ #添加mysql命令为系统命令
[root@study mysql]mysql -uroot -p
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
[root@study mysql]ln -s /tmp/mysqld.sock /var/lib/mysql/mysql.sock
[root@study mysql] mysql -uroot -p #输入mysql初始化时产生的临时密码登陆
mysql > alter user 'root'@'localhost' identified by '123456'; #首次登陆,修改账号密码
出现错误
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
尝试
ln -s /tmp/mysqld.sock /var/lib/mysql/mysql.sock
STEP 6.2 启动测试以及加入系统服务
[root@study mysql] cd /data/mysql/
[root@study mysql] cp support-files/mysql.server /etc/mysqld
[root@study mysql] vim /etc/mysqld #添加basedir路径,添加datadir路径,添加mysql pid文件路径
[root@study mysql]chkconfig --add mysqld
[root@study mysql]chkconfig mysqld on
[root@study mysql]service mysqld start
[root@study mysql]ln -s /data/mysql/bin/* /usr/bin/ #添加mysql命令为系统命令
[root@study mysql]mysqladmin -u root password 123456# 配置数据库管理员用户密码,假设为 123456
[root@study mysql]mysql -uroot -p123456
mysql > grant all privileges on *.* to 'user'@'localhost' identified by 'gz@1234'; #创建指定用户,并赋权
STEP 7. 设置开机启动以及打开防火墙设置
#防火墙
[root@study mysql] firewall-cmd --permanent --zone=pulibc --add-port=3306/tcp
[root@study mysql] firewall-cmd --reload
STEP 8. 远程主机连接mysql
#连接mysql
[root@study mysql] mysql -h ip地址 -u 用户名 -p 密码