MySQL5.7.32 通用版本安装
1 上传镜像,配置好yum源
2 下载MySQL相关的包 https://dev.mysql.com/downloads/mysql/
3 解压安装:
tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz #解压
sudo mv mysql-5.7.23-linux-glibc2.12-x86_64 /usr/local/mysql #剪切到定制的安装目录
4 创建数据存放目录,并对目录指定用户和用户组
mkdir /data/mysql
sudo groupadd mysql
useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql #禁止mysql用户shell登陆
指定用户和用户组:
sudo chown mysql:mysql /usr/local/mysql/ -R #修改安装目录的用户和用户组
sudo chown -R mysql:mysql /data/mysql/ #修改数据目录的用户和用户组
5 MySQL初始化
cd /usr/local/mysql/
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql # 注意初始化命令执行后会生成一个临时root密码
sudo bin/mysql_ssl_rsa_setup --datadir=/data/mysql #生成密钥对
6 将MySQL服务添加到系统服务中
sudo cp support-files/mysql.server /etc/init.d/mysqld -r
vim /etc/init.d/mysqld #修改配置文件中,指定数据目录和安装目录
datadir=/data/mysql
basedir=/usr/local/mysql
7 配置环境变量,使用命令
sudo vim /etc/profile #文件末尾追加以下内容
#set MySQL
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/sbin
source /etc/profile
8 启动MySQL服务,先删除配置文件
sudo rm -rf /etc/my.cnf
sudo /etc/init.d/mysqld start
#使用临时密码登陆数据库
mysql -uroot -p
登陆之后立即修改数据库的密码:
mysql> set password=password('root');
授权用户登陆:
mysql>grant all privileges on *.* to 'root'@'%' identified by 'root';
刷新权限表,让修改生效:
mysql>flush privileges;
9 配置MySQL配置文件 /etc/my.cnf
先停止服务:
/etc/init.d/mysqld stop
在修改配置文件:
vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
basedir=/usr/local/mysql
user=mysql
socket=/var/lib/mysql/mysql.sock
## Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
## instructions in http://fedoraproject.org/wiki/Systemd
#[mysqld_safe]
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid
10 创建配置文件中不存在的目录,并指定用户和用户组为mysql
sudo mkdir /var/lib/mysql #套接字目录
sudo chown mysql:mysql /var/lib/mysql -R
sudo mkdir /var/run/mysql # 进程文件存放目录
sudo chown mysql:mysql /var/run/mysql -R
sudo mkdir /var/log/mysql # 错误日志存放目录
sudo chown mysql:mysql /var/log/mysql -R
重启服务器:
sudo /etc/init.d/mysqld restart
使用刚刚修改的密码登陆数据库:
mysql -uroot -p
报错显示找不到套接字文件,做一个软连接
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
再次登陆成功
mysql -uroot -p
登陆,可以成功查看
11 设置MySQL服务为开机自启动
chkconfig mysqld on
chkconfig --list |grep mysqld
报错:
1 启动时报进程id存在,但服务又没有启动
注意查看配置文件中的各个目录是否存在,且权限是否给到位
2 使用mysql -uroot -p登陆数据库时,报错显示找不到套接字/tmp/mysql.sock
解决办法:做一个软连接 源文件为MySQL配置文件中指定的套接字的文件 目标文件为/tmp/mysql.sock
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock