一、下载MySQL安装包
下载地址:
MySQL :: Download MySQL Community Server (Archived Versions)
二、上传至Linux
三、MySQL安装过程
1、配置hosts文件
[root@mysqlm ~]# echo "192.168.130.101 mysqlm" >> /etc/hosts
[root@mysqlm ~]#
[root@mysqlm ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.130.101 mysqlm
2、卸载主机自带的MySQL
[root@mysqlm ~]# rpm -qa | grep mysql
[root@mysqlm ~]#
[root@mysqlm ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.56-2.el7.x86_64
[root@mysqlm ~]#
[root@mysqlm ~]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
rpm -e --nodeps: 表示不检查依赖,直接删除rpm包
3、安装MySQL 5.7
1. 创建用户
[root@mysqlm mysql]# groupadd mysql
[root@mysqlm mysql]# useradd -g mysql mysql
useradd
命令解释:
useradd
是创建新用户的命令。
-r
参数表示创建一个系统用户,也就是一个没有家目录的用户。
-g mysql
参数表示将新创建的用户分配到mysql
用户组。
-s /bin/false
参数表示设置用户的登录 shell 为/bin/false
,这意味着用户不能登录到系统。
mysql
是要创建的用户名
2. 解压缩
[root@mysql5-s ~]# tar xvf mysql-5.7.44-linux-glibc2.12-x86_64.tar
mysql-test-5.7.44-linux-glibc2.12-x86_64.tar.gz
mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
[root@mysql5-s ~]# tar -zxvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
[root@mysql5-s ~]# mv mysql-5.7.44-linux-glibc2.12-x86_64 /home/mysql/
[root@mysql5-s ~]#
[root@mysql5-s ~]# chown -R mysql:mysql /home/mysql/
3. 创建mysql目录
切换到mysql用户下继续操作:
[root@mysql5-s ~]# su - mysql
[mysql@mysql5-s ~]$ ll
total 0
drwxr-xr-x 9 mysql mysql 129 May 10 17:41 mysql-5.7.44-linux-glibc2.12-x86_64
创建数据目录及日志目录:
[mysql@mysql5-s ~]$ mv mysql-5.7.44-linux-glibc2.12-x86_64 mysql
[mysql@mysql5-s ~]$
[mysql@mysql5-s ~]$ mkdir data
[mysql@mysql5-s ~]$ mkdir log
[mysql@mysql5-s ~]$
[mysql@mysql5-s ~]$ ll
total 0
drwxrwxr-x 2 mysql mysql 6 May 10 17:46 data
drwxrwxr-x 2 mysql mysql 6 May 10 17:46 log
drwxr-xr-x 9 mysql mysql 129 May 10 17:41 mysql
4. 编辑mysql配置文件
[root@mysqlm ~]# vim /home/mysql/mysql/my.cnf
[mysql]
default-character-set = utf8
socket = /home/mysql/data/mysql.sock
[mysqld]
#skip-name-resolve
port = 3306
socket = /home/mysql/data/mysql.sock
basedir = /home/mysql/mysql
datadir = /home/mysql/data
character-set-server = utf8
default-storage-engine=INNODB
innodb_buffer_pool_size = 1G
max_allowed_packet = 128M
explicit_defaults_for_timestamp = 1
log-output=FILE
general_log=0
general_log_file=/home/mysql/log/general.log
slow_query_log = 1
slow_query_log_file = /home/mysql/log/slow.log
long_query_time = 8
log_error = /home/mysql/log/error.log
5. 配置环境变量
[mysql@mysql5-m ~]$ cd mysql/bin/
[mysql@mysql5-m bin]$ pwd
/home/mysql/mysql/bin
[mysql@mysql5-m bin]$ vim ~/.bash_profile
[mysql@mysql5-m bin]$ source ~/.bash_profile
[mysql@mysql5-m bin]$ which mysql
~/mysql/bin/mysql
4、数据库初始化
[root@mysqlm ~]# /home/mysql/mysql/bin/mysqld --initialize --user=mysql --basedir=/home/mysql/mysql/ --datadir=/home/mysql/data/
或
/home/mysql/mysql/bin/mysqld --defaults-file=/home/mysql/mysql/my.cnf --initialize --user=mysql --basedir=/home/mysql/mysql/ --datadir=/home/mysql/data/
5、手动启动和停止MySQL方法
[root@mysqlm ~]# nohup /home/mysql/mysql/bin/mysqld_safe --defaults-file=/home/mysql/mysql/my.cnf &
或
[root@mysqlm ~]# mysqladmin -uroot -p shutdown -S /mysql/data/mysql.sock
6、配置mysql启停脚本
[root@mysqlm ~]# vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/home/mysql/mysql/bin/mysqld --defaults-file=/home/mysql/mysql/my.cnf
LimitNOFILE = 65536
LimitNPROC = 65536
7、配置systemctl启动和停止方法
[root@mysqlm ~]# systemctl start mysqld
[root@mysqlm ~]# systemctl stop mysqld
[root@mysqlm ~]# systemctl status mysqld
[root@mysqlm ~]# systemctl enable mysqld
8、进入数据库,修改root密码
[mysql@mysql5-m ~]$ mysql -uroot -p -S /home/mysql/data/mysql.sock
mysql> alter user 'root'@'localhost' identified by 'root';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
四、可能出现的报错解决
1、mysql.sock文件问题
描述:
[mysql@mysql5-m ~]$ mysql -uroot -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决:
[mysql@mysql5-m ~]$ ln -s /home/mysql/data/mysql.sock /tmp/mysql.sock