通过源码在Linux上安装MySQL5.7.23

说明:本安装教程的Linux环境为CentOS6.8,并且只适合在本机安装一个版本的mysql,如果需要安装多个版本的mysql,需要更改一些配置。


一、卸载旧版本的mysql相关内容

使用命令检查是否安装有MySQL Server:     rpm -qa | grep mysql

有的话通过下面的命令来卸载掉:
例如查到安装了mysql-libs-5.1.73-7.el6.x86_64

rpm -e mysql-libs   //普通删除模式
rpm -e --nodeps mysql-libs    // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

二、安装环境准备

安装编译代码需要的包
yum -y install gcc-c++ ncurses-devel cmake make perl gcc autoconf automake zlib libxml libgcrypt libtool bison

⒉下载mysql安装包
安装包的种类有很多,不同的安装包安装方法略有不同。比如编译好的二进制包,带boost库的安装包,不带boost库的安装包等。为了方便安装过程中不受boost依赖的影响,直接从官网下载mysql-boost-5.7.23.tar.gz版本。

这个是下载编译过的二进制包
这个是下载没有编译过的包

 ⒊解压mysql-boost-5.7.23.tar.gz到你想存放的目录: tar xvf mysql-boost-5.7.23.tar.gz -C 目录

三、 编译并安装

⒈先 cd 到mysql刚才解压到的目录

⒉编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/opt/mysql-5.7.23/boost

说明:如果编译出错,没有通过,检测参数后重新运行配置,需要删除CMakeCache.txt文件
#make clean

#rm -f CMakeCache.txt

执行命令:make && make install
说明:这个安装时间很长(30分钟左右),耐心等待即可。

四、配置MySQL

设置权限

使用下面的命令查看是否有mysql用户及用户组:
cat /etc/passwd     //查看用户列表
cat /etc/group       //查看用户组列表

如果没有就创建:
groupadd mysql   //创建mysql组
useradd
-g mysql mysql   //创建属于mysql组的mysql用户
passwd mysql  //为mysql用户创建登录密码

修改/usr/local/mysql权限:chown -R mysql:mysql /usr/local/mysql

⒉初始化

执行初始化配置脚本,创建系统自带的数据库和表:
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

说明:此条语句执行时容易报错,成功至少要满足以下几个条件
/usr/local/mysql/data目录存在并且一定要为空目录,否则报错;
如果本机已经存在了其余的mysql,请确实/etc/my.cnf文件不存在,否则会按照/etc/my.cnf中的设置进行初始化,datadir会读取另一个mysql实例的路径,从而导致报错。遇到此情况,可以先将已经存在的mysql实例停止,然后将/etc/my.cnf文件剪切到此实例对应的datadir目录中,再启动此实例,然后重新执行初始化命令;
上面语句初始化成功后会在控制台打印临时管理员密码,如:...root@localhost: 2wp?fPp33/Hw,其中2wp?fPp33/Hw就是密码。

⒊将启动脚本做成服务(选做)

 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
 chkconfig mysql on  //设置服务自动启动

说明:刚安装好,需要手动启动一次。#cd /usr/local/mysql/support-files  #./mysql.server start

⒋配置PATH(选做)

#echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile   //把mysql的bin路径加入PATH
#source /etc/profile   //让PATH变量修改立即生效

⒌创建软链接(选做)

这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
解决方法:创建软链接 ln -s /usr/local/mysql/bin/mysql /usr/bin

⒍远程连接配置(选做)
  ①为root添加远程连接的能力,连接账号为root,连接密码为 “root”(不包括双引号)
      mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";

  ② 开放3306端口号
      # vim /etc/sysconfig/iptables
      在打开的文件中,加入如下内容:

      # service iptables restart 

五、修改默认登录密码

MYSQL默认给分配了一个默认密码,但当自己在终端上使用默认密码登录的时候,总会提示一个授权失败的错误

解决方法一:修改配置文件my-default.cnf

⒈打开配置文件my-default.cnf,然后在里面找到 [mysqld] 这一项,然后在该配置项下添加skip-grant-tables 这个配置,然后保存文件。
⒉重启mysql服务:service mysql restart
⒊接着就可以免密登录了:敲入 mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中。
⒋重置密码:
    use mysql;
    update user set authentication_string=password('password') where user='root';
    flush privileges;

   说明:执行sql语句的时候,如果出现ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement. 则需要先执行一下flush privileges.

⒌退出mysql:quit
⒍重启mysql服务: service mysql restart
⒎我们改完默认密码后,再次进入到之前的配置文件中,将我们跳过密码的那个配置行给删除掉,变为系统原先的配置。重启MySQL服务,下次再登录的时候便可以解决掉这个问题了。

解决方法二:进入mysql安全模式

官网说:从5.7.18开始不在二进制包中提供my-default.cnf文件。经过测试,在5.7.18版本中,使用tar.gz安装时,也就是压缩包解压出来安装这种,已经不再需要my.cnf文件也能正常运行。

先关掉Mysql服务:service mysqld stop

进入mysql的安全模式后,键入图中圈起来的四行配置(必须逐行输入),输入完成后使用 ctrl+z 键结束输入 然后再终端中使用 mysql -u root -p 同样可以实现密码登录,另外此时密码也已经修改为了 pass ,下次的登录即可使用pass这个新密码了。

说明:下次登录的时候,可能遇到以下问题:

只需要再次设置一下密码,下次就不会出现这样的问题了。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在CentOS 7上安装MySQL 5.7.23的码版本可以按照以下步骤进行: 1. 下载MySQL码文件:你可以在MySQL的官方网站上下载稳定版本的码文件,选择MySQL 5.7.23的码文件。 2. 安装编译MySQL所需的依赖项:打开终端并使用以下命令安装MySQL的编译依赖项: ``` sudo yum groupinstall "Development Tools" sudo yum install cmake sudo yum install ncurses-devel ``` 3. 解压码文件:将下载的码文件解压到一个自定义的目录中,例如~/mysql-src。 4. 创建MySQL编译构建目录:在终端中转到解压的码文件目录,并创建一个新的目录用于构建MySQL码: ``` cd ~/mysql-src mkdir build cd build ``` 5. 配置和编译MySQL:运行以下命令来配置MySQL的构建选项并编译码: ``` cmake .. make ``` 6. 安装MySQL:运行以下命令以将编译后的MySQL安装到系统中: ``` sudo make install ``` 7. 配置MySQL:完成安装后,需要进行一些配置。可以使用以下命令复制MySQL的配置文件模板: ``` sudo cp ~/mysql-src/support-files/my-default.cnf /etc/my.cnf ``` 8. 初始化MySQL数据目录:使用以下命令来为MySQL创建一个数据目录并初始化数据: ``` sudo mkdir /var/lib/mysql sudo chown -R mysql:mysql /var/lib/mysql sudo /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql ``` 9. 启动MySQL服务:使用以下命令启动MySQL服务: ``` sudo /usr/local/mysql/bin/mysqld_safe --user=mysql & ``` 现在你应该成功地将MySQL 5.7.23安装在CentOS 7上,并启动了MySQL服务。你可以使用MySQL客户端连接到MySQL服务器并执行必要的配置和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值