MySQL5.7源码安装

下载Boost 库
#Boost 库是为 C++ 语言标准提供扩展的一些C++ 程序的总称, 由Boost社区组织开发,维护。
下载或者       rz上传boost包,下载地址:
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

  

 

依赖环境安装(yum方式)
yum install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison
cd /usr/src
wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.25.tar.gz
#进入源码目录
cd /usr/src
tar -xzf mysql-5.7.21.tar.gz cd mysql-5.7.21
进行预编译:

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql7 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_DATADIR=/data/mysql7 -DSYSCONFDIR=/usr/local/mysql7 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BIG_TABLES=1 -DWITH_DEBUG=0 -DENABLE_DTRACE=0 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

参数解释:(仅供参考)

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql7  #自定义目录
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock  #定义 mysql sock进程
-DMYSQL_DATADIR=/data/mysql7 
-DSYSCONFDIR=/usr/local/mysql7 
-DMYSQL_USER=mysql  #启动用户
-DMYSQL_TCP_PORT=3306 
-DWITH_XTRADB_STORAGE_ENGINE=1 
-DWITH_INNOBASE_STORAGE_ENGINE=1 
-DWITH_PARTITION_STORAGE_ENGINE=1 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 
-DWITH_MYISAM_STORAGE_ENGINE=1 
-DWITH_READLINE=1  #使用 readline 功能
-DENABLED_LOCAL_INFILE=1 
-DWITH_EXTRA_CHARSETS=1 
-DDEFAULT_CHARSET=utf8 
-DDEFAULT_COLLATION=utf8_general_ci 
-DEXTRA_CHARSETS=all 
-DWITH_BIG_TABLES=1  #临时表打开, 存储在磁盘上
-DWITH_DEBUG=0 
-DENABLE_DTRACE=0 
-DDOWNLOAD_BOOST=1 
-DWITH_BOOST=/usr/local/boost
进行编译安装

make -j 4
make install
创建一个存放数据目录, 创建mysql用户, 授权/data/mysql目录权限

useradd -s /sbin/nologin mysql
mkdir /data/mysql7
chown -R mysql. /data/mysql7
将mysql文件复制到/etc/init.d/目录下并授权限
cp support-files/mysql.server  /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
手动创建配置文件 vim /usr/local/mysql7/my.cnf
[mysqld] 
basedir=/usr/local/mysql7/ 
datadir=/data/mysql7/ 
port=3306 
pid-file=/data/mysql7/mysql7.pid
socket=/tmp/mysql.sock

[mysqld_safe] 
log-error=/data/mysql7/mysql7.log
#初始化
/usr/local/mysql7/bin/mysqld --initalize --user=mysql --datadir=/data/mysql7 -basedir=/usr/local/mysql7/

跳过权限
vim /usr/local/mysql7/my.cnf 
在[mysqld]字段下添加: skip-grant-tables 

然后重启服务:
/etc/init.d/mysql7 restart

免密进入数据库: 如果只启动了一个数据库服务,可以直接用下面的命令进入,要是有多个服务启动,会默认进入3306的数据 库,到时可以指定IP和端口进入。
/usr/local/mysql7/bin/mysql

登录数据库服务器:
执行语句时报错, 提示需要修改密码


更新密码为123456 mysql> set password
for root@localhost = password("123456");
设置密码永不过期
mysql> ALTER USER 'root'@'localhost' password expire never;

/usr/local/mysql7/my.cnf文件中添加: default_password_lifetime=0

 

再次登录mysql  输入密码即可!!!
/usr/local/mysql7/bin/mysql -p
输入密码:

原文地址:https://www.cnblogs.com/fengyuanfei/p/13798825.html