大概分为以下几步,中间细说踩坑细节:
1、上传mysql 安装tar包 /usr/local/
(我下载的是mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 这个版本)
2、解压缩,并重命名文件夹mysqlxx.xx.xx 为mysql
tar -zxvf mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz
mv mysqlxx.xx.xx mysql
(很多地方说解压到其他地方,在这创建软连接,完全没必要)
3、添加MYSQL用户
groupadd mysql && useradd -M -g mysql -s /sbin/nologin -d /usr/local/mysql mysql
创建数据存放、日志、临时文件夹:
mkdir -p /data
赋权mysql用户:
chown -R mysql:mysql /data /usr/local/mysql/
添加环境变量:
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile && source /etc/profile
4、修改 /etc/my.cnf配置文件,修改默认3306端口,修改mysql.sock 套接文件,见第8条
如果不想使用默认的3306端口,可在此手工修改端口
这里有个坑点:Mysql安装完后,在默认的路径下不会生成mysql.sock套接文件,需要在my.cnf中手工指定,不然服务启动会报错。
mysql.sock文件是在初始化完成后、第一次启动数据库时候生成的
这里可参考:Centos 7.5安装 Mysql5.7.24www.cnblogs.com
5、初始化MYSQL:
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
6、可以在error.log里找随机自动生成的root密码:
cat /data/mysql/mysql3306/data/error.log |grep "for root@localhost"|awk -F " " '{print $11}' >/data/mysql/mysql3306/password.txt && cat /data/mysql/mysql3306/password.txt
--优化numa,细节处理
vi /usr/local/mysql/support-files/mysql.server
完善basedir,datadir
/usr/bin/numactl --interleave all $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
//设置自启动
chkconfig --add mysqld
chkconfig mysqld on
//启动MYSQL
service mysqld start
7、登录改密:
./mysql -uroot -p
然后输入你之前在err.log里找到的初始密码
修改初始密码:
alter user user() identified by '新的root密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '新的root密码';
flush privileges;
9、建库:
创建库:
CREATE DATABASE `你想建的库名` /*!40100 DEFAULT CHARACTER SET utf8 */;
show databases;
10、创建普通用户,用户赋权:
grant all privileges on 你新建的库.* to '新建的用户名'@'%' identified by '新建的用户密码';
select Host,User from mysql.user;
flush privileges;