一、安装环境
操作系统:CentOS Linux release 7.4.1708 (Core)
MySQL:mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
二、下载、安装、配置过程
1、创建安装MySQL的用户geeklp,并指定用户目录。
[root@Geeklp-MySQL ~]# useradd -d /usr/local/mysql geeklp
[root@Geeklp-MySQL ~]# passwd geeklp
2、使用账户geeklp登录,切换到其用户目录下,下载mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz。
[root@Geeklp-MySQL ~]# su geeklp
[geeklp@Geeklp-MySQL root]$ cd ~
[geeklp@Geeklp-MySQL ~]$ curl -C - -O http://mirrors.ustc.edu.cn/mysql-ftp/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
3、解压后移动相关文件并进行安装。
[geeklp@Geeklp-MySQL ~]$tar -xvzf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
[geeklp@Geeklp-MySQL mysql-5.7.20-linux-glibc2.12-x86_64]$ mv * ../
[geeklp@Geeklp-MySQL mysql-5.7.20-linux-glibc2.12-x86_64]$ cd ..
[geeklp@Geeklp-MySQL ~]$ rm -rf mysql-5.7.20-linux-glibc2.12-x86_64/
[geeklp@Geeklp-MySQL ~]$ mkdir data
[geeklp@Geeklp-MySQL ~]$ cd bin
[geeklp@Geeklp-MySQL bin]$ ./mysqld --user=mysql--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
此过程执行完成后注意记录密码。
4、修改配置文件,并设置开机启动。
[geeklp@Geeklp-MySQL bin]$ su root
[root@Geeklp-MySQL bin]# cd ../support-files/
[root@Geeklp-MySQL support-files]# mv mysql.server /etc/init.d/mysqld
[root@Geeklp-MySQL support-files]# chkconfig --list
[root@Geeklp-MySQL support-files]# chkconfig --add mysqld
[root@Geeklp-MySQL support-files]# chkconfig --list
[root@Geeklp-MySQL support-files]#chkconfig mysqld on #设置开机启动
5、修改/etc/my.cnf内容,如果没有该文件则新建之后在里面加入如下内容。
[mysqld]
port = 3306
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /tmp/mysql.sock #特别注意一下,此路径不能随意修改,否则会报错
character_set_server=utf8
pid-file = /usr/local/mysql/data/mysql.pid
log-error = /usr/local/mysql/data/error.log
user = geeklp
tmpdir = /tmp
max_connections = 1500
# 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]
#log-error = /usr/local/mysql/mariadb.log
#pid-file = /usr/local/mysql/mariadb.pid
#
# include all files from the config directory
#
#!includedir /etc/my.cnf.d
[client]
default-character-set = utf8
6、启动服务。
[root@Geeklp-MySQL mysql]# su geeklp
[geeklp@Geeklp-MySQL ~]$ service mysqld start
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password:
==== AUTHENTICATION COMPLETE ===
Starting MySQL. SUCCESS!
如果使用非root用户启动则会要求输入root用户密码。再次重启服务的时候会提示:/var/lock/subsys/mysql无法删除,这是权限问题,切换到root用户下删除该文件即可。
7、修改密码。
[geeklp@Geeklp-MySQL ~]$ ./bin/mysql -u root -p
Enter password:
mysql> set password for root@localhost='geeklp-test';
8、查看一下所支持的字符集。
mysql> show variables like '%char%';
以上就是glibc版MySQL安装的全部过程。
三、常见问题FAQ
1、用非root用户启动服务时报如下错误:rm: cannot remove '/var/lock/subsys/mysql': Permission denied
答:权限问题,将/var/lock/subsys/mysql的所有者改为启动用户,命令:chown geeklp:geeklp /var/lock/subsys/mysql,或者直接删除此文件。
2、用户无法远程登录。
答:登入数据库,修改设置,让远程用户可以登录。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'geeklp-test' WITH GRANT OPTION;
FLUSH PRIVILEGES;