一、下载MySQL
官网下载:MySQL :: Download MySQL Community Server
glibc包:mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
源码包:mysql-boost-5.7.31.tar.gz(下载包含boost库的包,方便安装)
二、安装glibc包
1.安装
yum install libaio -y # 安装依赖库
tar -xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz # 解压
useradd -r -s /sbin/nologin mysql # 创建无法登陆的mysql用户
rm -rf /etc/my.cnf # 删除配置文件,这是mariadb的预留配置文件,不删除会导致mysql初始化失败
mv mysql-5.7.31-linux-glibc2.12-x86_64 /mysql_3306 # 这是自定义目录,官方指定目录是/usr/local
cd /mysql_3306
mkdir mysql-files # 官方要求创建
chown mysql:mysql mysql-files
chmod 750 mysql-files
bin/mysqld --initialize --user=mysql --basedir=/mysql_3306 # 初始化,运行完成后,注意最后一行的随机密码,这是root用户的密码。初始化成功标志是mysql目录下生成 ./data/mysql
bin/mysql_ssl_rsa_setup --datadir=/mysql_3306/data # 设置SSL加密连接
cp support-files/mysql.server /etc/init.d/mysql_3306 # 将启动文件复制到/etc/init.d/,这样可以使用service启动mysql
vim /etc/init.d/mysql_3306 # 自定义目录需要修改文件里的路径,官方指定目录则无需修改
46 basedir=/mysql_3306
47 datadir=/mysql_3306/data
service mysql_3306 start # 启动mysql,启动时的文件名要与/etc/init.d/下的文件名相同
chkconfig --add mysql_3306 # 添加自启动
chkconfig mysql_3306 on # 把2345四种模式开启
2.配置
2.1 修改root账号密码
方法一:
/mysql_3306/bin/mysqladmin -uroot password '123456' -p # 回车,然后输入初始化产生的随机密码
方法二:
/mysql_3306/bin/mysql -uroot -p随机密码 # 进入mysql
mysql> set password='123456'; # 设置密码
mysql> flush privielges; # 刷新权限生效
2.2 添加到环境变量
echo 'export PATH=$PATH:/mysql_3306/bin' >> /etc/profile
source /etc/profile # 使配置文件生效
2.3 编写mysql的配置文件
vim /mysql_3306/my.cnf
[mysqld]
basedir=/mysql_3306
datadir=/mysql_3306/data
socket=/tmp/mysql.sock
service mysql_3306 restart # 修改完配置文件,记得重启服务
2.4 安全配置
mysql_secure_installation # 全都选Y
三、安装源码包
1.安装
yum -y install cmake libaio-devel openssl-devel gcc gcc-c++ ncurses ncurses-devel bison # 安装依赖包
tar -xf mysql-boost-5.7.31.tar.gz
cd mysql-5.7.31
vim myconfig.sh # 在脚本文件里执行配置,好处是不会遗漏,方便检查
cmake . \
-DCMAKE_INSTALL_PREFIX=/mysql_3307 \
-DMYSQL_DATADIR=/mysql_3307/data \
-DMYSQL_TCP_PORT=3307 \
-DMYSQL_UNIX_ADDR=/mysql_3307/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_SSL=system \
-DWITH_BOOST=boost
chmod +x myconfig.sh # 加执行权限
./myconfig.sh # 执行脚本
make -j2 && make install # 编译安装,-j后的数字表示CPU核数,可以并行编译
编译出错处理方法:
rm -f CMakeCache.txt
make -j2 && make install
?
2.初始化
cd /mysql_3307 # 安装时自定义的安装目录
mkdir mysql-files # 官方要求
chown -R mysql:mysql /mysql_3307 # 使mysql用户对/mysql_3307里的文件拥有修改权限
chmod 750 mysql-files
bin/mysqld --initialize --user=mysql --basedir=/mysql_3307 --datadir=/mysql_3307/data # 初始化,注意最后产生的随机密码
cp support-files/mysql.server /etc/init.d/mysql_3307 # 可以用service启动mysql
service mysql_3307 start # 注意服务名称要与/etc/init.d/下的文件名一致
chkconfig --add mysql_3307 # 添加开机自启动
chkconfig mysql_3307 on # 开启2345四种模式
?
3.配置
vim /mysql_3307/my.cnf # 编写配置文件
[mysqld]
basedir=/mysql_3307
datadir=/mysql_3307/data
socket=/mysql_3307/mysql.sock
service mysql_3307 restart # 修改完配置文件,记得重启
/mysql_3307/bin/mysqladmin -uroot password '123' -p # 输入随机密码后,修改root账号密码
/mysql_3307/bin/mysql_secure_installation # 安全设置,都选Y
?
四、忘记密码怎么办?(采用跳过授权表的方法)
mysqladmin shutdown -p # 关闭数据库
/mysql_3306/bin/mysqld --defaults-file=/mysql_3306/my.cnf --skip-grant-tables --skip-networking=on --user=mysql & # 跳过授权表启动
mysql -uroot -p # 不用输密码,直接回车
mysql> flush privileges; # 刷新授权表,这一步千万不能少
mysql> alter user 'root'@'localhost' identified by '123'; # 修改密码
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass') WHERE User = 'root' AND Host = 'localhost'; # 如果上一条修改密码不成功,则使用这条命令
mysql> FLUSH PRIVILEGES; # 修改完密码记得刷新权限
jobs # 查看后台进程
kill %1 # 结束后台的mysqld进程
service mysql_3306 start # 重启服务
|