系统版本centos7.4,mysql64位版本5.7.22
快速开始
下载mysql文件包
wget方式下载:1
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
同样可以手动先下载好然后上传到服务器。
解压文件包
| 1 | tar -xvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz | 
移动位置
可以移动到自己需要的位置1
mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/
重命名1
mv /usr/local/mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql
新建data目录
| 1 | mkdir /usr/local/mysql/data | 
新建mysql用户、mysql用户组
| 1 | groupadd mysql | 
| 1 | useradd mysql -g mysql | 
修改所有者和组
| 1 | chown -R mysql.mysql /usr/local/mysql | 
配置
| 1 | /usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data | 
如果出现以下错误1
2
3[WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
[ERROR]   Child process: /usr/local/mysql/bin/mysqldterminated prematurely with errno= 32
[ERROR]   Failed to execute /usr/local/mysql/bin/mysqld --bootstrap --datadir=/usr/local/mysql/data --lc-messages-dir=/usr/local/mysql/share --lc-messages=en_US --basedir=/usr/local/mysql
则使用以下命令1
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
如果出现以下错误1
/usr/local/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
则执行以下命令1
yum -y install numactl
安装完成后再次执行前面失败的命令1
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
编辑my.cnf
| 1 | vi /etc/my.cnf | 
将以下内容复制进去1
2
3
4
5
6
7
8
9
10
11
12
13
14[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证
skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
如果忽略大小写,在[mysqld]下方增加lower_case_table_names =1即可,如下1
2
3
4
5
6
7
8
9
10
11
12
13
14
15[mysqld]
lower_case_table_names =1
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证
skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
将mysql加入服务
| 1 | cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql | 
开机启动
| 1 | chkconfig mysql on | 
启动数据库
| 1 | service mysql start | 
设置密码
由于my.cnf中我们设置取消密码验证,不需要密码就能进入数据库1
/usr/local/mysql/bin/mysql -u root -p
上面命令执行后,再次回车就能进入数据库1
use mysql;
修改密码1
update user set authentication_string=password('你的密码') where user='root';
| 1 | flush privileges; | 
退出1
exit;
注释/etc/my.cnf的skip-grant-tables
找到skip-grant-tables 前面加个#号即可
再次设置密码
登录再次设置密码(不知道为啥如果不再次设置密码就操作不了数据库了)1
/usr/local/mysql/bin/mysql -u root -p
| 1 | ALTER USER 'root'@'localhost' IDENTIFIED BY '修改后的密码'; | 
退出1
exit;
允许远程连接
| 1 | /usr/local/mysql/bin/mysql -u root -p | 
| 1 | use mysql; | 
| 1 | update user set host='%' where user = 'root'; | 
| 1 | flush privileges; | 
退出1
exit;
添加快捷方式
| 1 | ln -s /usr/local/mysql/bin/mysql /usr/bin |