1、排除安装干扰
1.1 检查是否已经安装,执行命令
rpm -qa | grep mysql
如果已经存在,则执行删除命令
rpm -e --nodeps 名字
1.2 查找是否有mysql相关的进程,执行命令
ps -ef|grep mysql | grep -v grep
ps -ef|grep mysqld | grep -v grep
如果有,则执行下面的命令将其杀死
kill -9 进程号
1.3 查找mysql相关的文件,执行命令
find / -name mysql
如果有,将其删除或者重命名,自行百度mv命令的用法
2、安装操作
2.1 将压缩包用远程连接工具上传到linux上,我是传到/opt/下的,如果是新手,建议和我一样,免得出问题。使用解压命令解压
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.39-el7-x86_64.tar.gz
tar -zxvf mysql-5.7.39-el7-x86_64.tar.gz
2.2 解压之后会多出一个文件夹mysql-5.7.39-el7-x86_64,重命名为 mysql-5.7.39 。
mv mysql-5.7.39-el7-x86_64 mysql-5.7.39
注意:如果已经存在mysql这个目录,最好将其移动到别的地方或者重命名,和我保持一致,避免一些不必要的问题。
2.3 创建mysql用户组和mysql用户
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
以上为存在的情况,如无,执行添加命令:
groupadd mysql
useradd -r -g mysql mysql
注意:useradd -r参数表示mysql用户是系统用户,不可用于登录系统
2.4 创建data,数据存放目录
cd mysql-5.7.39
mkdir data
修改权限
chown -R mysql.mysql /usr/local/mysql-5.7.39
2.5 创建配置文件
在/usr/local/mysql-5.7.39/support-files目录下创建my_default.cnf,创建命令
cd /usr/local/mysql-5.7.39/support-files
touch my_default.cnf
在文件中复制以下内容(如果你的安装目录和我不一样,那么这些目录要和你自己的目录对应才行):
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
basedir = /usr/local/mysql-5.7.39
datadir = /usr/local/mysql-5.7.39/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8
log-error = /usr/local/mysql-5.7.39/data/mysqld.log
pid-file = /usr/local/mysql-5.7.39/data/mysqld.pid
explicit_defaults_for_timestamp=true
lower_case_table_names=1
max_allowed_packet=64M
#最大连接数
max_connections=1512
#超时等待时间
wait_timeout=86400
interactive_timeout=86400
net_write_timeout=120
net_read_timeout=60
linux下shift+insert是粘贴,Ctrl+insert是复制
拷贝,如果提示是否覆盖,y
cp support-files/my_default.cnf /etc/my.cnf
2.6 初始化
cd /opt/mysql-5.7.39
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.39/ --datadir=/usr/local/mysql-5.7.39/data/
2.6.1 如果报下面的错误:
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
那就先执行下面的命令再执行上面的初始化命令
yum install -y libaio
2.7 初始密码
初始化之后到日志中去查看初始密码,等会登录用。日志在
/usr/local/mysql-5.7.39/data/mysqld.log
可以用cat 命令查看
cat /usr/local/mysql-5.7.39/data/mysqld.log
a8?DQir=T+k+就是密码,查看自己的并且记下来
[Note] A temporary password is generated for root@localhost: a8?DQir=T+k+
如果在data下面没有找到mysqld.log日志文件,有可能是2.5步中配置文件的内容有问题,去检查/etc/my.cnf这个文件,看看配置的那些路径是不是正确的,或者你的安装目录和我不一样,但是配置文件却没有改
2.8 启动
把启动脚本放到开机初始化目录
cp support-files/mysql.server /etc/init.d/mysql
启动命令
service mysql start
如果启动报错
Starting MySQL.2021-06-21T04:56:48.691659Z mysqld_safe The file /usr/local/mysql/bin/mysqld
does not exist or is not executable. Please cd to the mysql installation
directory and restart this script from there as follows:
./bin/mysqld_safe&
See http://dev.mysql.com/doc/mysql/en/mysqld-safe.html for more information
The server quit without updating PID file (/opt/mysql-5.7.1[FAILED]ysqld.pid).
这是因为:在MySQL 5.7中,安全性提升,要求切换到软件安装目录,来启动数据库,所以得换种方式启动
cd /usr/local/mysql-5.7.39
./bin/mysqld_safe --defaults-file=/etc/my.cnf &
2.9 登录,刚刚日志中的密码
./bin/mysql -u root -p
每次都要这样来登录,有点麻烦,可以这样做
ln -s /usr/local/mysql-5.7.39/bin/mysql /usr/bin
以后登录就可以直接用mysql命令登录了
mysql -uroot -p
2.10 修改密码
set password=password('123456');
flush privileges;
2.11 设置远程连接
use mysql;
update user set host="%" where user="root";
flush privileges;
重启mysql才能生效。
service mysql stop
service mysql start
service mysql restart
检查防火墙状态
sudo systemctl status firewalld
关闭防火墙
sudo systemctl stop firewalld
开启防火墙
sudo systemctl start firewalld
查看所有开放的端口
netstat -ntlp
开放指定端口
sudo firewall-cmd --add-port=3306/tcp --permanent
刷新防火墙
sudo firewall-cmd --reload
查看指定端口的开放状态
sudo firewall-cmd --query-port=3306/tcp
3. 完善
3.1 启动问题
在2.8步启动过程中,如果需要需要./bin/mysqld_safe --defaults-file=/etc/my.cnf &这种方式启动,那么我们可以简单的处理一下,
mkdir -p /usr/local/mysql/bin
ln -s /usr/local/mysql-5.7.39/bin/mysqld /usr/local/mysql/bin/mysqld
4. 最后
自己也是在网上找的参考资料,然后碰到了各种问题,所以把自己的问题记录了下来。
主要参考
https://blog.csdn.net/lch520baby/article/details/89081306
https://blog.csdn.net/eagle89/article/details/78411184
http://blog.itpub.net/26506993/viewspace-2136837/
https://blog.csdn.net/u010587433/article/details/47291317
https://blog.csdn.net/emily_and_cat/article/details/108712222
————————————————
原文链接:https://blog.csdn.net/ql_7256/article/details/108424249