二进制程序包安装MySQL
说在前面:本教程实在 linux (centos)环境中安装mysql,Ubuntu命令请自行转换
1、获取二进制安装文件
从[mysql官网](https://dev.mysql.com/downloads/mysql/5.7.html)
下载对应本版的 mysql
安装包,上传至 服务器(或目的环境中)
2、开始安装
创建用户(为了统一MySQL的用户)
useradd -M -s /sbin/nologin -r mysql
命令参数说明:
- -M 不要自动建立用户的登入目录
- -s 指定解析器
- -r 创建的用户为系统用户
解压
tar -zxvf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
mv /usr/local/mysql-5.7.43-linux-glibc2.12-x86_64 /usr/local/mysql
命令参数说明:
- -C 解压至指定目录
创建 mysql 数据目录
mkdir -p /usr/local/mysql_data
mysql_data
为 mysql 数据保存目录,可以根据情况进行创建,若已使用自定义目录,后续安装过程的此项目录请对照修改
创建mysql日志文件
touch /var/log/mysqld.log
文件路径和名称可以自定义,后续安装过程的此项文件目录请对照修改
mysql 相关目录授权
chown -R mysql.mysql /usr/local/mysql/
chown -R mysql.mysql /usr/local/mysql_data/
chown -R mysql.mysql /var/log/mysqld.log
添加配置文件(my.cnf)
vi /etc/my.cnf
文件内容如下:
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql_data
port=3306
socket=/usr/local/mysql/mysql.sock
character-set-server=utf8mb4
log-error=/var/log/mysqld.log
pid-file=/tmp/mysqld.pid
[mysql]
socket=/usr/local/mysql/mysql.sock
[client]
socket=/usr/local/mysql/mysql.sock
添加启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
修改文件内容
vim /etc/init.d/mysqld
- 修改
basedir
和datadir
分别为之前的安装目录(/usr/local/mysql
)和数据目录 (/usr/local/mysql_data
)
初始化
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql_data
注意此处会出现初始化密码(随机生成),密码在执行此命令结束的最后一行
启动mysql
/etc/init.d/mysqld start
到此mysql已经可以正常启动了
3、修改配置
修改mysql的默认信息
添加mysql客户端软连接
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
使用mysql客户端连接mysql服务进行默认数据修改
mysql -uroot -p
# 输入默认密码,密码默认不显示
修改默认密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
- IDENTIFIED BY 后为新密码,可根据情况自定义
允许远程连接
use mysql;
update user set Host='%' where User='root';
flush privileges;
# 退出mysql客户端
exit;
4、添加 mysql 至系统配置
配置系统文件(mysql.service)
vi /usr/lib/systemd/system/mysql.service
文件内容如下:
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
设置开机自启
systemctl daemon-reload
# 添加开机自启
systemctl enable mysql
其他控制命令:
# 删除开机自启 mysql
systemctl disable mysql
# 手动启动 mysql
systemctl start mysql
# 查看 mysql 是否运行
systemctl status mysql