Linux版本的MySQL有很多安装方式
这里介绍免安装版本,tar包版本的安装和配置
下载
注意:“Select Operating System:”选项我们选择“Linux - Generic”
圈出来的三个部分,自上而下分别是精简包(只包含MySQL)、测试套件、完整包(包含MySQL和测试套件)
这里我们下载精简包就可以了(自行对应32bit/64bit)
解压&依赖
首先留意一个点,glibc版本和libaio
我们下载的时候能够看到文件名有“glibc2.12”字样
我们打开命令行
ldd --version
我们能够看到glibc版本号,不低于2.12即可
MySQL依赖于libaio 库
在基于Yum的系统上:
yum install libaio
在基于APT的系统上:
apt install libaio1
我们准备解压(习惯上我们把文件都放在/usr/local路径下)
解压并且重命名文件夹为“mysql”
tar -xzvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.21-linux-glibc2.12-x86_64/ mysql
此时我们可以用ls命令看到有一个mysql文件夹已经被解压完毕
安装
进入mysql目录下
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
bin/mysqld --initialize-insecure --user=mysql
bin/mysqld_safe --user=mysql &
此时MySQL已经在后台运行
初始化
进入mysql/bin目录下
./mysql_secure_installation
初始化完成进入mysql/support-files路径下
./mysql.server stop
./mysql.server start
进入mysql/bin目录下
./mysql -u root -p
输入root密码即可登陆mysql
USE mysql;
SELECT u.`User`,u.`Host` FROM `user` u WHERE u.`User`='root';
我们可以看到Host字段的值是localhost,这样我们无法从外部连接数据库
UPDATE `user` u SET u.`Host`='%' WHERE u.`User`='root';
FLUSH PRIVILEGES;
这时我们就可以使用别的机器连接这台机器上面的MySQL了
连接成功
设置自动启动方法一
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
update-rc.d mysql defaults
设置自动启动方法二(systemd)
如果觉得上面的方法一不够好用,可以试一试方法二
我们进入/etc/systemd/system路径下创建名为“mysql.service”的文件
cd /etc/systemd/system/
vi mysql.service
然后填写以下配置
[Unit]
Description=MySQL 5.7.21
[Service]
Type=forking
User=root
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecReload=/usr/local/mysql/support-files/mysql.server restart
ExecStop=/usr/local/mysql/support-files/mysql.server stop
[Install]
WantedBy=multi-user.target
填写完成后就可以使用systemctl来操作mysql的服务了
systemctl start mysql
systemctl restart mysql
systemctl stop mysql
systemctl enable mysql
手动执行systemctl enable mysql后即可完成对mysql的自启设置
部分系统在刚刚添加完配置文件后使用systemctl,会提示找不到mysql.service
重启即可解决(或者使用命令“systemctl daemon-reload”重新加载一下即可)