本文以 centos为例,使用官方编译好的二进制文件安装
一.下载tar文件
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
二.解压移动到相应目录
tar -xvf mysql-5.7.22-linux-glibc2.12-x86_64.tar
mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql
三.创建相关用户和目录
- 创建用户
groupadd mysql
useradd -r -g mysql mysql
- 创建目录 我这里把数据存贮再 /home/data/mysql 目录下 并赋予权限
mkdir -p /data/mysql
chown mysql:mysql -R /data/mysql
四.初始化数据库
- 初始化之前先修改配置文件
vim /etc/my.cnf
[mysqld]
datadir=/home/data/mysql
socket=/var/lib/mysql/mysql.sock
lower_case_table_names=1
character_set_server=utf8
init_connect='SET NAMES utf8'
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
- 执行初始化操作
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/home/data/mysql/ --user=mysql --initialize
成功之后会打印出临时密码,记住这个密码后面登录客户端会用到
[Note] A temporary password is generated for root@localhost: ,(d.F*5=ay*P
五.启动mysql
- 先将mysql.server放置到/etc/init.d/mysql中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
- 启动
[root@iz2z bin]# service mysql start
Starting MySQL.Logging to '/home/data/mysql/iz2ze5p6ra1evukysvb5rpz.err'.
2021-03-04T02:15:32.805481Z mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
The server quit without updating PID file (/home/data/mysql[FAILED]6ra1evukysvb5rpz.pid).
启动失败报错无相关目录 创建该目录后再次尝试
[root@iz2z bin]# mkdir -p /var/lib/mysql
[root@iz2z bin]# chmod 777 /var/lib/mysql/
[root@iz2z bin]# service mysql start
Starting MySQL.The server quit without updating PID file (/[FAILED]mysqld/mysqld.pid).
还是启动失败 查看错误日志
[root@iz2z bin]# cat /var/log/mysqld.log
.....
2021-03-04T02:20:13.982173Z 0 [Note] - '::' resolves to '::';
2021-03-04T02:20:13.982192Z 0 [Note] Server socket created on IP: '::'.
2021-03-04T02:20:13.983756Z 0 [ERROR] Can't start server: can't check PID filepath: No such file or directory
PID对应得目录不存在,创建目录再次重试
[root@iz2z bin]# mkdir -p /var/run/mysqld
[root@iz2z bin]# service mysql start
Starting MySQL.The server quit without updating PID file (/[FAILED]mysqld/mysqld.pid).
启动再次失败,还是看日志
[root@iz2z bin]# cat /var/log/mysqld.log
2021-03-04T02:22:06.145196Z 0 [ERROR] /usr/local/mysql/bin/mysqld: Can't create/write to file '/var/run/mysqld/mysqld.pid' (Errcod
2021-03-04T02:22:06.145211Z 0 [ERROR] Can't start server: can't create PID file: Permission denied
目录没有权限,赋予权限后再次重试
[root@iz2z bin]# chmod 777 /var/run/mysqld/
[root@iz2z bin]# service mysql start
Starting MySQL. [ OK ]
启动成功
六.修改密码配置远程连接
登录本地客户端输入刚才记住得密码
[root@iz2z bin]# cd /usr/local/mysql/bin/
[root@iz2z bin]# ./mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
提示找不到 /tmp/mysql.sock而 mysql.sock是在/var/lib/mysql/mysql.sock目录下(在/etc/my.cnf中配置),做一个软连接
[root@iz2z bin]# ln -s /var/lib/mysql/mysql.sock /tmp
[root@iz2z bin]# ./mysql -u root -p
Enter password:
输入密码后成功登录
- 修改密码
SET PASSWORD = PASSWORD('root');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
- 配置远程连接
use mysql
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
最后可以用navcat远程连接
注意:本文归作者所有,未经作者允许,不得转载