mysql的源码包安装

打印 上一主题 下一主题

主题 893|帖子 893|积分 2679

安装方式一:(编译好的直接安装)

1.添加一块10G的硬盘,给root逻辑卷扩容

(下面安装方式二有,一模一样的装就行,我就不写了,再写的话篇幅就太长了)

2.下载编译好的源码包mysql


下载方式1

   通过网盘分享的文件:mysql-compile-finish-5.25.tar.gz
链接: https://pan.baidu.com/s/1D46ncApOlt1Unvf5zTzg1w?pwd=4pn6 提取码: 4pn6
  
下载方式2

   我用夸克网盘分享了「mysql-compile-finish-5.25.tar.gz」,点击链接即可生存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:https://pan.quark.cn/s/29a844ed63fb
  


3.解压

 [root@xxx ~]# tar -xvf /mysql-compile-finish-5.25.tar.gz -C /usr/local/

4.创建mysql用户与数据目录

[root@xxx /]# id mysql        #查看mysql用户,没有的创建一个
uid=27(mysql) gid=27(mysql) 组=27(mysql)
[root@xxx /]# useradd -u 27 -d /var/lib/mysql -s /bin/false mysql        #创建mysql用户
[root@xxx /]# mkdir /usr/local/mysql/data

5.修改权限

[root@xxx /]# chown -R mysql.mysql /usr/local/mysql/

6.创建和编写配置文件

[root@xxx /]# mv /etc/my.cnf /etc/my.cnf.bak        #不使用rpm产生的配置文件(假如之前安装过rpm包的mysql就会产生,这个会影响源码包mysql的启动)
[root@xxx /]# touch /etc/my.cnf        #创建一个配置文件
[root@xxx /]# vim /etc/my.cnf        #编写配置文件
   [mysqld]
socket=/tmp/mysql.sock
  [mysql]
socket=/tmp/mysql.sock
  
7.初始化

[root@xxx /]# cd /usr/local/mysql/        #切换到/usr/local/mysql/目录下
[root@xxx mysql]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data        #初始化
(报错就一行一行的复制)

初始化时 数据目录data必须为空目录,记得把暗码给复制下来。

8.启动登录mysql

[root@xxx /]# /usr/local/mysql/bin/mysqld_safe --user=mysql &        #启动mysql
[root@xxx mysql]# netstat -anplt | grep :3306        #查抄端口
[root@xxx mysql]# ps -aux | grep mysql        #查抄历程

可以查看到mysql的端口与历程,成功启动源码包的mysql服务端!
[root@xxx ~]#  /usr/local/mysql/bin/mysql -uroot -p"6eVVkWjt/kkL"        #登录mysql

登录成功!

9.修改暗码

mysql> set password=password('123');

修改成功

10.修改源码mysql服务端的启动方式

原因

由于每次启动都要输入/usr/local/mysql/bin/mysqld_safe --user=mysql & 这么长的下令很不方便,以是我们要修改一下启动方式,使之和rpm包安装的mysql的启动方式相同。

修改

[root@xxx mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd
#复制启动脚本到/etc/init.d/下并重命名为mysqldd
#/etc/init.d/目录通常用于存放体系服务的启动脚本

[root@xxx mysql]# chkconfig --add mysqldd
#将指定的服务mysqldd添加到体系服务列表
# chkconfig是用于管理体系服务启动和制止的工具

[root@xxx mysql]# service mysqldd restart
#重启源码包的mysql服务检验是否添加成功

创建成功!

留意事项和说明


(留意:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd和chkconfig --add mysqldd的序次不能反,只有先将源码包mysql的启动脚本复制到/etc/init.d/目录下,chkconfig工具才气找到并识别mysqldd服务,进而将其添加到体系服务列表中。)
(说明:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd这里的mysqldd就是启动脚本的脚本名,改成啥都行,别跟体系自带的脚本冲突了就行,都能启动,这里改成mysqldd是由于我这里以前安装过rpm包的mysq,内里已经有一个叫mysql的脚本了,必须区分开,不外你后面的chkconfig --add mysqldd的名字要对应上,就是说你前面写的脚本名叫abc,这里chkconfig --add abc也要改成abc)

11.修改源码客户端的登录方式

原因

由于每次启动都要输入/usr/local/mysql/bin/mysqld_safe --user=mysql & 这么长的下令很不方便,以是我们要修改一下启动方式,使之和rpm包安装的mysql的启动方式相同。

修改

[root@xxx ~]# $PATH        #查看对应的可执行文件所在的目录
-bash: /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:
(任意一个)
[root@xxx ~]# ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysqldd        #创建软链接
/usr/local/mysql/bin/mysql        #源文件路径
/usr/local/bin/mysqldd        #要创建的符号链接的路径和名称

创建成功!

12.设置开启自启动

[root@xxx /]# chkconfig --add mysqldd
[root@xxx /]# chkconfig mysqldd on
也可以
[root@xxx /]# systemctl restart mysqldd


报错解决:


报错1


解决方法:
一行一行的复制,这个报错是由于下令行中存在不可见的特殊字符,像空格、制表符等,他这个博客文本复制粘贴有问题,粘过来不能调节,一行一行复制就行了。


报错2


解决方法一(跳过授权表修改暗码来登录):
[root@xxx ~]# vim /etc/my.cnf        #(添加skip-grant-tables,在启动时跳过权限验证体系)
   [mysqld]
socket=/tmp/mysql.sock
skip-grant-tables       
[mysql]
socket=/tmp/mysql.sock
  [root@xxx ~]# systemctl restart mysqldd        #重启mysql使配置见效(没有就去配置软链接,就在上面)
MySQL [(none)]> update mysql.user set authentication_string=null where User='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0
#清空 之前root 用户 MySQL 暗码信息

MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
#刷新权限表

MySQL [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '456';
Query OK, 0 rows affected (0.00 sec)
#修改暗码

MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
#再次刷新权限表

MySQL [(none)]> exit
Bye
#退出

[root@xxx ~]# vim /etc/my.cnf        #(删除skip-grant-tables)
   [mysqld]
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
  [root@xxx ~]# systemctl restart mysqldd        #重启使配置见效
[root@xxx ~]# mysql -uroot -p456        #登录

登录成功!

解决方法二(删库重新初始化登录,一次不行就多试频频):
[root@xxx ~]# killall mysqld        #制止mysql历程(一次杀不死多杀频频,这个mysql的历程挺难杀的,直到显示没有这个历程)
[root@xxx ~]# rm -rf /usr/local/mysql/data/*        #删库
[root@xxx /]# cd /usr/local/mysql/        #切换到/usr/local/mysql/目录下
[root@xxx mysql]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data        #初始化
(报错就一行一行的复制)

初始化时 数据目录data必须为空目录,记得把暗码给复制下来。
然后后面再登录就行了


报错3

   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=Example Domain
  解决方法:
删除缓存文件
[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


报错4

   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


报错5


解决方法:
yum install gcc gcc-c++


报错6

   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),
  解决方法:
yum install openssl-devel


报错7

   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



安装方式二:(本身编译安装)

1.添加一块10G的硬盘,给root逻辑卷扩容

硬盘添加










扩容

(假如感觉本身的硬盘空间富足可以不用扩容)
[root@xxx ~]# pvcreate /dev/sdj        #创建物理卷
[root@xxx ~]# vgextend centos /dev/sdj        #扩容卷组
[root@xxx ~]# lvextend -l +100%FREE /dev/centos/root        #扩容逻辑卷
[root@xxx ~]# xfs_growfs /        #扩容文件体系



2.下载mysql


下载方式1

阿里镜像/官网下载:
(官网太慢了,我这里用的阿里的镜像站)
阿里巴巴开源镜像站-OPSX镜像站-阿里云开辟者社区



mysql-MySQL-5.7安装包下载_开源镜像站-阿里云


[root@xxx /]# wget https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-5.7.38.tar.gz

下载成功!


下载方式2

网盘:
通过网盘分享的文件:mysql-5.7.38.tar.gz
链接: https://pan.baidu.com/s/1MvdMR0GHTQufvD_NjkZL_w?pwd=ity7 提取码: ity7



下载方式3

夸克:
我用夸克网盘分享了「mysql-5.7.38.tar.gz」,点击链接即可生存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。
链接:https://pan.quark.cn/s/4235e8494137


3.下载boost C++ 开源库聚集


下载方式1

网盘:
通过网盘分享的文件:boost_1_59_0.tar.gz
链接: https://pan.baidu.com/s/1VivJhxdPuGLmD3ah770S3w?pwd=yg7u 提取码: yg7u

下载方式2

夸克:
我用夸克网盘分享了「boost_1_59_0.tar.gz」,点击链接即可生存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。链接:https://pan.quark.cn/s/108b3f664e3b




4.创建mysql用户

[root@xxx /]# id mysql        #查看mysql用户,没有的创建一个
uid=27(mysql) gid=27(mysql) 组=27(mysql)
[root@xxx /]# useradd -u 27 -d /var/lib/mysql -s /bin/false mysql        #创建mysql用户

5.编译安装

安装前要有这两个

[root@xxx /]# tar -xvf /mysql-5.7.38.tar.gz -C /usr/local/src/        #解压到/usr/local/src/目录下
[root@xxx /]# tar -xvf /boost_1_59_0.tar.gz -C /usr/local/        #解压到/usr/local/目录下
[root@xxx /]# mv /usr/local/boost_1_59_0/ /usr/local/boost/        #重命名
[root@xxx ~]# yum install cmake        #安装编译工具
[root@xxx ~]# yum install gcc gcc-c++        #安装gcc与gcc-c++编译器
[root@xxx ~]# yum install openssl-devel        #安装openssl-devel
[root@xxx ~]# yum install ncurses-devel         #安装ncurses-devel包
[root@xxx ~]# cd /usr/local/src/mysql-5.7.38/        #切换到mysql-5.7.38目录下
[root@xxx mysql-5.7.38]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/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       
#配置编译参数(他这个博客的文本复制过来调节不了了,一行一行的复制哈,兄弟们,这个一整个全复制,可能会有问题,可能是带上空格了,但一行一行的复制绝对没问题)

参数说明:
-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=/tmp/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 启动文件位置

[root@xxx mysql-5.7.38]# make        #编译(编译时间较长,需要耐烦等候)
[root@xxx mysql-5.7.38]# make install        #安装

6.创建数据目录

[root@xxx /]# mkdir /usr/local/mysql/data        #创建数据目录

7.修改权限

[root@xxx mysql]# chown -R mysql.mysql /usr/local/mysql/        #修改权限
[root@xxx mysql]# ls -l /usr/local/mysql/


8.创建与编写配置文件

[root@xxx /]# mv /etc/my.cnf /etc/my.cnf.bak        #不使用rpm产生的配置文件(假如之前安装过rpm包的mysql就会产生,这个会影响源码包mysql的启动)
[root@xxx /]# touch /etc/my.cnf        #创建一个配置文件
[root@xxx /]# vim /etc/my.cnf        #编写配置文件
[mysqld]
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock

 9.初始化

[root@xxx /]# cd /usr/local/mysql/        #切换到/usr/local/mysql/目录下
[root@xxx mysql]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data        #初始化
(报错就一行一行的复制)

初始化时 数据目录data必须为空目录,记得把暗码给复制下来。

10.启动登录mysql

[root@xxx /]# /usr/local/mysql/bin/mysqld_safe --user=mysql &        #启动mysql
[root@xxx mysql]# netstat -anplt | grep :3306        #查抄端口
[root@xxx mysql]# ps -aux | grep mysql        #查抄历程

可以查看到mysql的端口与历程,成功启动源码包的mysql服务端!

[root@xxx mysql]# /usr/local/mysql/bin/mysql -uroot -p"BfyZaGad=5hZ"        #登录

启动成功!

11.修改暗码

mysql> set password=password('123');

修改成功!

12.修改源码mysql服务端的启动方式


原因

由于每次启动都要输入/usr/local/mysql/bin/mysqld_safe --user=mysql & 这么长的下令很不方便,以是我们要修改一下启动方式,使之和rpm包安装的mysql的启动方式相同。

修改

[root@xxx mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd
#复制启动脚本到/etc/init.d/下并重命名为mysqldd
#/etc/init.d/目录通常用于存放体系服务的启动脚本

[root@xxx mysql]# chkconfig --add mysqldd
#将指定的服务mysqldd添加到体系服务列表
# chkconfig是用于管理体系服务启动和制止的工具

[root@xxx mysql]# service mysqldd restart
#重启源码包的mysql服务检验是否添加成功

创建成功!

留意事项和说明


(留意:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd和chkconfig --add mysqldd的序次不能反,只有先将源码包mysql的启动脚本复制到/etc/init.d/目录下,chkconfig工具才气找到并识别mysqldd服务,进而将其添加到体系服务列表中。)
(说明:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqldd这里的mysqldd就是启动脚本的脚本名,改成啥都行,别跟体系自带的脚本冲突了就行,都能启动,这里改成mysqldd是由于我这里以前安装过rpm包的mysq,内里已经有一个叫mysql的脚本了,必须区分开,不外你后面的chkconfig --add mysqldd的名字要对应上,就是说你前面写的脚本名叫abc,这里chkconfig --add abc也要改成abc)


13.修改源码客户端的登录方式


原因

由于每次启动都要输入/usr/local/mysql/bin/mysqld_safe --user=mysql & 这么长的下令很不方便,以是我们要修改一下启动方式,使之和rpm包安装的mysql的启动方式相同。

修改

[root@xxx ~]# $PATH        #查看对应的可执行文件所在的目录
-bash: /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:
(任意一个)
[root@xxx ~]# ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysqldd        #创建软链接
/usr/local/mysql/bin/mysql        #源文件路径
/usr/local/bin/mysqldd        #要创建的符号链接的路径和名称

创建成功!

14.设置开机自启动

[root@xxx /]# chkconfig --add mysqldd
[root@xxx /]# chkconfig mysqldd on
也可以
[root@xxx /]# systemctl restart mysqldd


报错解决


报错1


一行一行的复制,这个报错是由于下令行中存在不可见的特殊字符,像空格、制表符等,他这个博客文本复制粘贴有问题,粘过来不能调节,一行一行复制就行了。


报错2


方法一(跳过授权表修改暗码来登录):
[root@xxx ~]# vim /etc/my.cnf        #(添加skip-grant-tables,在启动时跳过权限验证体系)
   [mysqld]
socket=/tmp/mysql.sock
skip-grant-tables       
[mysql]
socket=/tmp/mysql.sock
  [root@xxx ~]# systemctl restart mysqldd        #重启mysql使配置见效(没有就去配置软链接,就在上面)
MySQL [(none)]> update mysql.user set authentication_string=null where User='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0
#清空 之前root 用户 MySQL 暗码信息

MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
#刷新权限表

MySQL [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '456';
Query OK, 0 rows affected (0.00 sec)
#修改暗码

MySQL [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
#再次刷新权限表

MySQL [(none)]> exit
Bye
#退出

[root@xxx ~]# vim /etc/my.cnf        #(删除skip-grant-tables)
   [mysqld]
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
  [root@xxx ~]# systemctl restart mysqldd        #重启使配置见效
[root@xxx ~]# mysql -uroot -p456        #登录

登录成功!

方法二(删库重新初始化登录,一次不行就多试频频):
[root@xxx ~]# killall mysqld        #制止mysql历程(一次杀不死多杀频频,这个mysql的历程挺难杀的,直到显示没有这个历程)
[root@xxx ~]# rm -rf /usr/local/mysql/data/*        #删库
[root@xxx /]# cd /usr/local/mysql/        #切换到/usr/local/mysql/目录下
[root@xxx mysql]# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data        #初始化
(报错就一行一行的复制)

初始化时 数据目录data必须为空目录,记得把暗码给复制下来。
然后后面再登录就行了

感谢支持!





免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

乌市泽哥

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表