一、安装操作系统
二、换源
配置yum源的方法:
配置本地源:yum本地源配置
配置网络源:yum网络源配置
推荐网络源,可以直接看网络源第6步进行操作
三、MySQL 源码安装
1、获取安装包
- 官网下载法
官网安装包
版本自己选择自己需要的即可
下载完成之后直接上传到Linux上即可
- 网络下载法
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.38.tar.gz
2、安装过程
卸载mariadb,root用户执行
rpm -qa | grep mariadb # 查询当前系统中安装的名称带mariadb的软件
rpm -qa | grep mysql # 查询当前系统中安装的名称带mysql的软件
注意:如果当前系统中已经安装有MySQL数据库,安装将失败。Centos7自带mariadb,与MySQL数据库冲突
tar -xvf mysql-boost-5.7.38.tar.gz -C /usr/local/src/
- 安装依赖
yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison libaio-devel git openssl-devel
chmod 777 /opt
cd /usr/local/src/mysql-5.7.38
mkdir data
yum install cmake #安装编译工具
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_READLINE=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/opt/mysql.sock -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
出现报错
解决方案如下:
sudo yum install gcc-c++
然后再次执行发现,另一个错误
解决方法如下:
mkdir -p /usr/local/boost
wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz -P /usr/local/boost
如果因为网络问题下载失败,也可以在浏览器上输入http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
进行下载,然后再将包传入boost下
解释:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql 安装路径
-DMYSQL_DATADIR=/usr/local/mysql/data 数据目录
-DSYSCONFDIR=/etc -DWITH_READLINE=1 支持readline
-DMYSQL_TCP_PORT=3306 端口
-DMYSQL_UNIX_ADDR=/opt/mysql.sock socket文件位置
-DENABLED_LOCAL_INFILE=1 local_infile服务器变量指示能否使用load data local infile命令
-DEXTRA_CHARSETS=all 支持所有字符集
-DDEFAULT_CHARSET=utf8 支持utf-8
-DDEFAULT_COLLATION=utf8_general_ci 支持utf-8通用字符集
-DDOWNLOAD_BOOST=1 启动文件
-DWITH_BOOST=/usr/local/boost 启动文件位置
成功编译
- 安装
make && make install
- 系统中需要有mysql帐号(没有rpm的mysql)
useradd -u 27 -d /var/lib/mysql -s /bin/false mysql
- 创建数据目录
mkdir /usr/local/mysql/data
- 初始化
/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data
注意:初始化时 数据目录必须为空目录
- 修改权限
chown -R mysql.mysql /usr/local/mysql/
启动mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql &
检查端口:
netstat -anplt | grep :3306
登录
注意密码为初始化所产生的密码
/usr/local/mysql/bin/mysql -uroot -p"hu*smd2s/lwY"
修改密码
set password=password('123');
修改源码mysql的启动方式
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd
chkconfig --add mysqldd
service mysqldd restart
这里操作完以后得操作方式为 service mysqldd start/stop/restart
也可以
systemctl restart mysqldd
开机自启动
chkconfig --add mysqldd
chkconfig mysqldd on
修改源码客户端
vim /etc/profile
PATH=/usr/local/mysql/bin:$PATH
export PATH
source /etc/profile
测试登录
mysql -u root -p123
完成安装
四、错误汇总
错误1:
CMake Error at cmake/boost.cmake:81 (MESSAGE):
You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=
This CMake script will look for boost in . If it is not there,
it will download and unpack it (in that directory) for you.
If you are inside a firewall, you may need to use an http proxy:
export http_proxy=http://example.com:80
删除缓存文件
[root@localhost mysql-5.7.18]# rm -rf CMakeCache.txt
解决:
boost 版本过低
1.在/usr/local下创建一个名为boost的文件夹
mkdir -p /usr/local/boost
2.进入这个新创建的文件夹然后下载boost
wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
3.解压
tar -xvzf boost_1_59_0.tar.gz
4.继续cmake,添加上红色部分
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_READLINE=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
错误2:
CMake Error at cmake/readline.cmake:64 (MESSAGE):
Curses library not found. Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
cmake/readline.cmake:107 (FIND_CURSES)
cmake/readline.cmake:197 (MYSQL_USE_BUNDLED_EDITLINE)
CMakeLists.txt:488 (MYSQL_CHECK_EDITLINE)
– Configuring incomplete, errors occurred!
解决:
yum install ncurses-devel
[root@localhost [root@localhost mysql-5.7.18]# rm -rf CMakeCache.txt
[root@localhost mysql-5.7.18]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_READLINE=1 -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost
错误3:
解决:
yum install gcc gcc-c++
错误4:
Cannot find appropriate system libraries for WITH_SSL=system.
Make sure you have specified a supported SSL version.
Valid options are :
system (use the OS openssl library),
yes (synonym for system),
</path/to/custom/openssl/installation>
解决:
yum install openssl-devel
错误:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
情况1: socket文件没有在 /var/lib/mysql/mysql.sock
情况2: mysqld服务未启动
解决:
1.查看mysld服务端口 netstat -anplt | grep :3306
a.没端口服务未启动
b.有端口,文件位置不正确
cat /etc/my.cnf
socket=/var/lib/mysql/mysql.sock
mysql配置文件
[root@mail ~]# vim /etc/my.cnf
[mysqld]
socket=/var/lib/mysql/mysql.sock
[mysql]
socket=/var/lib/mysql/mysql.sock
user=root
password=123