MySQL5.7源码安装

MySQL5.7源码安装

# 0.安装依赖包
[root@db03 mysql-5.7.38]# yum install -y cmake openssl-devel

# 1.下载
[root@db03 ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.38.tar.gz

# 2.解压
[root@db03 ~]# tar xf mysql-boost-5.7.38.tar.gz


# 3.生成
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.38 \
-DMYSQL_DATADIR=/application/mysql-5.7.38/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.7.38/tmp/mysql.sock \
-DWITH_BOOST=/root/mysql-5.7.38/boost/boost_1_59_0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=system \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0 

# 4.编译 && 安装
[root@db03 mysql-5.7.38]# make && make install

#######################################  源码后半部分 + 二进制 ###############################################

# 0.安装依赖
[root@db04 bin]# yum install -y libaio-devel

# 1.解压
[root@db04 ~]# tar xf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz

# 2.创建安装目录
[root@db04 ~]# mkdir /application

# 3.移动
[root@db04 ~]# mv mysql-5.7.38-linux-glibc2.12-x86_64 /application/mysql-5.7.38

# 4.软链接
[root@db04 ~]# ln -s /application/mysql-5.7.38 /application/mysql

# 5.创建mysql用户
[root@db04 ~]# useradd mysql -s /sbin/nologin -M

# 6.授权
[root@db04 ~]# chown mysql.mysql -R /application/mysql-5.7.38/

# 7.修改mysql配置文件
[root@db04 mysql-5.7.38]# vim /etc/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/application/mysql/data

# 8.拷贝启动脚本
[root@db04 mysql-5.7.38]# cp support-files/mysql.server /etc/init.d/mysqld

# 9.初始化
### 带密码
[root@db04 bin]# ./mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data

### 不带密码
[root@db04 bin]# ./mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data

# 10.添加环境变量
[root@db04 bin]# echo 'PATH="/application/mysql/bin:$PATH"' >> /etc/profile.d/mysql.sh
[root@db04 bin]# source /etc/profile.d/mysql.sh


# 11.连接mysql
[root@db04 bin]# mysql -uroot -p'Hk0fzYh<pEbo'



### 重置默认密码
alter user root@'localhost' identified by '123';

误删除root用户或忘记root密码

# 1.停mysql
/etc/init.d/mysqld stop

# 2.跳过授权表,只能本地连接启动数据库
[root@m01 ~]# mysqld_safe --skip-grant-tables --skip-network &

# 3.刷新授权表
mysql> flush privileges;
flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。 
MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令
Query OK, 0 rows affected (0.00 sec)

# 4.创建root用户
mysql> grant all on *.* to root@'localhost' identified by '123' with grant option;
Query OK, 0 rows affected (0.00 sec)

# 4.刷新授权表
mysql> flush privileges;

# 5.重启mysql
[root@m01 ~]# /etc/init.d/mysqld restart
posted @ 2022-08-03 16:09  Gabydawei  阅读(429)  评论(0编辑  收藏  举报