暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL5.7 源码编译安装

闲暇编程 2021-06-25
784

1、目前主要提供三种方式安装:
     I、源码编译包 ( 50M ),需要boost 库支持
     II、绿色版(二进制)
     III、rpm合集包

2、源码编译 MySQL 所需的包:

    mysql-5.7.33.tar.gz  ## 主程序包
    boost_1_59_0.tar.gz  ## 提供 boost 库

    3、安装相关编译工具

      yum -y install cmake gcc-c++ ncurses-devel openssl openssl-devel

      4、编译安装需要创建 mysql 用户(rpm安装会自动创建)

        groupadd -g 27 mysql
        useradd -u 27 -g mysql -M -s sbin/nologin mysql

        5、创建数据库存放目录

          mkdir data/mysql
          chown mysql:mysql data/mysql/

          6、把安装包下载到 usr/local/src/ 目录下解压
                  解压后把 boost_1_59_0 改名为 boots 并移动到 local 目录下
                  进入到 mysql-5.7.33 目录下编译

            cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7 -DMYSQL_DATADIR=/data/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost -DWITH_INNODB_MEMCACHED=ON

                    cmake  参数解析 ,详细见附录

              -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7    ## 指定安装路径
              -DMYSQL_DATADIR=/data/mysql ## 指定数据存放路径
              -DDEFAULT_CHARSET=utf8
              -DDEFAULT_COLLATION=utf8_general_ci ## 设置字符校验集
              -DMYSQL_TCP_PORT=3306
              -DMYSQL_UNIX_ADDR=/tmp/mysql.sock ## 设置套接字生成路径
              -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=/usr/local/boost ## 指定Boost扩展源码路径

                      如果出错重新运行配置,需要删除 CMakeCache.txt文件,使用命令:   rm -f    或    删除目录 mysql-5.7.33    重新解压 cmak

                make && make install

                7、默认主配置文件

                  /etc/my.cnf

                      配置文件模板

                    [client]    ## 客户端读取
                    port=3306
                    socket=/data/mysql/mysql.sock


                    [mysqld] ## 服务器读取
                    character-set-server=utf8
                    collation-server=utf8_general_ci


                    skip-name-resolve
                    user=mysql
                    port=3306
                    basedir=/usr/local/mysql-5.7
                    datadir=/data/mysql
                    tmpdir=/tmp
                    socket=/data/mysql/mysql.sock


                    log-error=/data/mysql/mysqld.log
                    pid-file=/data/mysql/mysqld.pid

                    8、初始化数据库

                      /usr/local/mysql-5.7/bin/mysqld  --defaults-file=/etc/my.cnf   --initialize  --user=mysql

                      ls  data/mysql 有文件更新
                          初始化失败则清空 mysql 目录,保证为空目录,再次初始化

                      9、启动 MySQL 服务  并 查看端口

                        /usr/local/mysql-5.7/support-files/mysql.server start
                        netstat -ntl

                        10、mysql-5.7 版本有随机密码,在日志文件中

                          cat data/mysql/mysqld.log | grep password

                              使用随机密码登录

                            /usr/local/mysql-5.7/bin/mysql -p
                            EnterPassword: 粘贴密码

                                修改 密码 刷新配置

                              alter  user  'root'@'localhost'  identified  by  '123123';
                              flush privileges;

                              ## 启动 MySQL 服务
                                  usr/local/mysql-5.7/support-files/mysql.server start
                              ## 进入MySQL
                                  /usr/local/mysql-5.7/bin/mysql -uroot -p



                              扩展:

                                  忘记 root 密码
                                      配置文件设置 服务器标签 跳过密码登录

                                [mysqld]
                                skip-grant-tables

                                        重启服务

                                  /usr/local/mysql-5.7/support-files/mysql.server restart

                                          修改密码(因跳过密码登录这里用不了 alter 修改密码)

                                    update mysql.user set authentication_string=password('123123') where user='root' and host='localhost';

                                            更新修改时间(alter 会连时间一起修改,但这里用 update)

                                      update mysql.user set password_last_changed=now() where user='root' and host='localhost';

                                              退出,配置文件注释掉 skip-grant-tables, 重启 , 使用新密码登录

                                        步骤:修改配置文件-->重启服务-->改密码-->更新改密码时间-->还原配置文件-->重启服务-->使用密码登录


                                        文章转载自闲暇编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                        评论