centos7安装MySQL5.7
-
查看是否有安装过MySQL,有则删除
rpm -qa|grep mysql # whereis mysql # 查看MySQL安装位置 # find / -name mysql # 查看MySQL相关文件位置
-
卸载系统自带的Mariadb
rpm -qa|grep mariadb rpm -e --nodeps mariadb-xxx.x86_64 rm /etc/my.cnf
-
检查是否有MySQL用户和用户组,没有则创建
cat /etc/group | grep mysql cat /etc/passwd |grep mysql # 创建用户和用户组 groupadd mysql useradd -r -g mysql mysql
-
将下载好的MySQL解压放到/usr/local/mysql下(也可以自定义文件目录)
- MySQL下载(也可用浏览器去官网下载):
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.35-el7-x86_64.tar.gz # 下载mysql tar -xvf mysql-5.7.35-el7-x86_64.tar.gz # 解压 mv mysql-5.7.35-el7-x86_64 /usr/local/mysql
-
创建MySQL相关目录并初始化数据库
# 创建数据库需要使用的目录 mkdir -p /home/mysql/{data,logs,tmp} # 创建目录 chown -R mysql.mysql /home/mysql/ # 更改文件夹所属 # 初始化数据库 /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/home/mysql/data
-
创建数据库配置文件 my.cnf
vi /etc/my.cnf # 粘贴以下内容到my.cnf中 [mysqld] user = mysql basedir = /usr/local/mysql datadir = /home/mysql/data socket = /home/mysql/tmp/mysql.sock pid-file = /home/mysql/tmp/mysqld.pid tmpdir = /home/mysql/tmp character-set-server=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 lower_case_table_names = 1 log_timestamps=SYSTEM character-set-server = utf8 interactive_timeout = 36000 wait_timeout = 36000 max_allowed_packet = 1G # 单次最大查询 #logs server-id = 100 log-error = /home/mysql/logs/error.log slow_query_log = 1 slow_query_log_file = /home/mysql/logs/slow.log long_query_time = 3 log-bin = /home/mysql/logs/binlog expire_logs_days = 15 log_bin_trust_function_creators = 1 relay-log = /home/mysql/logs/relay-bin relay-log-recovery = 1 relay_log_purge = 1 [client] socket = /home/mysql/tmp/mysql.sock default-character-set=utf8 [mysql] default-character-set=utf8
-
配置mysql.server
vi /usr/local/mysql/support-files/mysql.server # 修改mysqld.service中的一下两个配置 basedir=/usr/local/mysql datadir=/home/mysql/data
-
配置systemctl服务
vim /usr/lib/systemd/system/mysqld.service # 粘贴以下内容到mysqld.service中 [Unit] Description=MySQL Server After=network.target After=syslog.target [Service] User=mysql Group=mysql Type=forking PermissionsStartOnly=true ExecStart= /usr/local/mysql/support-files/mysql.server start ExecStop= /usr/local/mysql/support-files/mysql.server stop ExecReload= /usr/local/mysql/support-files/mysql.server restart [Install] WantedBy=multi-user.target
-
添加环境变量(也可以不添加)
echo "PATH=$PATH:/usr/local/mysql/bin " >> /etc/profile source /etc/profile
-
启动数据库
systemctl daemon-reload systemctl start mysqld
-
修改密码
- 获取初始密码
more /home/mysql/logs/error.log |grep password
其他版本可能在初始化时直接给出初始密码
密码在‘A temporary password is generated for root@localhost:’ 提示之后-
配置了环境变量
mysql -u root -p alter user 'root'@'localhost' identified by '123'; flush privileges;
-
未设置环境变量
/usr/local/mysql/bin/mysql -u root -p
解决centos8可能会提示没有 ‘libncurses.so.5’:
yum install libncurses.*
-
开机自启
systemctl enable mysqld
参考:https://www.cnblogs.com/wherehappens/articles/15055614.html