部署3307 3308两个mysql总算成功,记录一下磕磕绊绊的安装过程。
下载安装包 解压 换名字,网上一大堆,我下载的是5.7.38 压缩包安装。
tar -zxvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz
#将mysql-5.7.38-linux-glibc2.12-x86_64重命名为mysql
mv mysql-5.7.38-linux-glibc2.12-x86_64 mysql
修改配置文件my.cnf 如果没有 从/etc/my.cnf复制过来
my.cnf文件内容
mysqld部分
其中port必须设置 basedir必须设置 datadir必须设置 data需要自己创建 没必要一定放在一个目录。我这里可能是一个错误的选择。socket 必须设置 pid-file必须设置。
mysql-safe部分
log-error必须设置 其他两个不知道是不是必须,没有尝试。
![](https://img-blog.csdnimg.cn/img_convert/5408dc867cf4b2647c03e9545cf40f57.png)
创建mysql用户(没尝试root)
groupadd mysql
useradd -r -g mysql mysql
用户然后记得给权限. data目录 根目录 等等 能给的一定不要忘记了!能给的一定不要忘记了!能给的一定不要忘记了!
chown mysql:mysql -R /opt/mysql3308/data
chown mysql:mysql -R /opt/mysql3308
chown mysql:mysql -R /opt/mysql3308/my.cnf
还有一点 好像是data目录 权限不能给所有人都读写(大概777?)(为了安全?)不熟,能用就行。
这个文件夹下的server文件需要复制到/etc/init.d/下。再改个名字
![](https://img-blog.csdnimg.cn/img_convert/96a07c2e0562fffb68c7bd9d27c0d167.png)
这是复制过去,改过名 ,改过配置的文件,需要改3处。
![](https://img-blog.csdnimg.cn/img_convert/5c750a55d95499baf52a384db31169a9.png)
![](https://img-blog.csdnimg.cn/img_convert/5aa4b590860775f84931ecc2bdf73e83.png)
好了 可以初始化了。
还是没有尝试只写defaults-file 虽然看起来其他的配置在my.cnf中都已经指定了。
在尝试只写defaults-file 因为有其他报错,不好判断需不需要写。等到能启动时,谁管你需不需要写~
命令输入后 提示信息最后有个密码要记一下。
bin/mysqld --defaults-file=/opt/mysql3308/my.cnf --basedir=/opt/mysql3308/ --datadir=/opt/mysql3308/data/ --user=mysql --initialize
这是抄来的配置自启动 07 08 都执行下
![](https://img-blog.csdnimg.cn/img_convert/818dfa1188580c10544154df360a3bc6.png)
启动 两种方法都可以吧,没搜区别
sudo service mysql3308.server start
service mysql3308.server start
记录一个启动报错,其他报错没保存图片。 如果my.cnf中忘记写port 会报此错
![](https://img-blog.csdnimg.cn/img_convert/d95c2b9e563cfbf5947894c1cf4d569a.png)
启动成功
![](https://img-blog.csdnimg.cn/img_convert/423469f56d753050dcf8afa89c4897e5.png)
登录mysql
如果和我一样 跟网上学的登录,就会出现这个情况。mysql起来了,但是你登录不上去~
当时以为mysql.sock配置有问题。
![](https://img-blog.csdnimg.cn/img_convert/52f85277d20122bfa5f1d59f25cde651.png)
需要写上IP!需要写上IP!需要写上IP! 多写点累不死!太坑了
![](https://img-blog.csdnimg.cn/img_convert/fb6bf0ac3059dbff9385215f57b9f049.png)
改密码
SET PASSWORD = PASSWORD('123456');
设置mysql可远程连接
如果不写FLUSH PRIVILEGES;(刷新)远程还是连不上。
use mysql;
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
补图登录
![](https://img-blog.csdnimg.cn/img_convert/811cec412d2247d55e3f24e4596d848e.png)
补充my.cnf完整内容
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysql]
socket =/opt/mysql3307/mysql3307.sock
[mysqld]
port =3307
basedir = /opt/mysql3307
datadir =/opt/mysql3307/data
socket =/opt/mysql3307/mysql3307.sock
pid-file = /opt/mysql3307/mysql.pid
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
socket=/opt/mysql3307/mysql.sock
log-error=/opt/mysql3307/mariadb.log
pid-file=/opt/mysql3307/mariadb.pid