美文网首页
Install mysql5.7 by compiling so

Install mysql5.7 by compiling so

作者: ArthurIsUsed | 来源:发表于2019-03-14 08:47 被阅读0次
    • 1.添加mysql用户组

      • groupadd mysql
    • 2.添加mysql用户

      • useradd -g mysql -s /bin/nologin mysql -M
    • 3.查看系统中是否安装mysql,如果安装需要卸载.rpm -e --nodeps 命令来卸载掉
    [root@backend-cxy mysql]# rpm -qa | grep mysql
    mysql-libs-5.1.73-8.el6_8.x86_64
    [root@backend-cxy mysql]# rpm -e mysql-libs-5.1.73-8.el6_8.x86_64 --nodeps
    
    • 4.安装依赖包
      • yum -y install wget gcc-c++ ncurses-devel cmake
      • 进入http://dev.mysql.com/downloads/mysql/,选择Source Code下的Generic Linux。选择带boost库的mysql下载。MySQL5.7对boost库有要求,选择带boost库的会避过一些坑。
     wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz 
    
    • 5.解压、编译
      • CMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
      • DEFAULT_CHARSET:指定服务器默认字符集,默认latin1
      • DEFAULT_COLLATION:指定服务器默认的校对规则,默认latin1_general_ci
      • ENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE,默认OFF
      • WITH_COMMENT:指定编译备注信息
      • WITH_xxx_STORAGE_ENGINE:指定静态编译到mysql的存储引擎,MyISAM,MERGE,MEMBER以及CSV四种引擎默认即被 编译至服务器,不需要特别指定。
      • WITHOUT_xxx_STORAGE_ENGINE:指定不编译的存储引擎
      • SYSCONFDIR:初始化参数文件目录
      • MYSQL_DATADIR:数据文件目录
      • MYSQL_TCP_PORT:服务端口号,默认3306
      • MYSQL_UNIX_ADDR:socket文件路径,默认/tmp/mysql.sock
    tar xf mysql-boost-5.7.18.tar.gz
    cd mysql-5.7.18
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -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 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=boost/boost_1_59_0
    make && make install
    
    • 6.编译完后,MySQL会安装到/usr/local/mysql目录。进入该目录并创建data目录
    cd /usr/local/mysql
    mkdir data
    
    • 7.修改目录权限
    chown -R mysql. /usr/local/mysql
    
    • 8.初始化数据库
      • 之前版本mysql_install_db是在mysql_basedir/script下,5.7放在了mysql_install_db/bin目录下,且已被废弃
      • "--initialize"会生成一个随机密码(~/.mysql_secret),而"--initialize-insecure"不会生成密码
      • --datadir目标目录下不能有数据文件
      • 使用--initialize参数后,一定要记住生成的密码,否则无法登陆数据库。
    [root@backend-cxy ]#cd ./bin
    [root@backend-cxy bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
    2017-09-05T15:03:41.067600Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
    2017-09-05T15:03:41.338120Z 0 [Warning] InnoDB: New log files created, LSN=45790
    2017-09-05T15:03:41.369521Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
    2017-09-05T15:03:41.426215Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 6778cd1c-924b-11e7-a8c2-0050569e3837.
    2017-09-05T15:03:41.426860Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
    2017-09-05T15:03:41.429970Z 1 [Note] A temporary password is generated for root@localhost: rU?Dow;aA8oF
    
    • 9.拷贝启动文件到/etc/init.d/下并重命令为mysqld
    /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    
    • 10.安装完后发现没有my.cnf配置文件,手动创建个
    # vim /etc/my.cnf
    [mysqld]
    basedir =/usr/local/mysql
    datadir =/usr/local/mysql/data
    port = 3306
    socket = /tmp/mysql.sock
    [client]
    socket=/tmp/mysql.sock
    
    • 11.启动MySQL
    /etc/init.d/mysqld start
    
    • 12.登录MySQL
    /usr/local/mysql/bin/mysql -uroot -p系统生成的密码
    
    • 13.修改root密码
    mysql>set password = password(‘Newpassword‘);
    mysql>flush privileges;
    mysql>exit
    
    • 14.退出重新登录
    /usr/local/mysql/bin/mysql -uroot -p‘Newpassword'
    
    • 15.查看安装状态
    rpm -qi mysql-server
    service mysqld start
    
    • 16.查看是否开机启动
    [root@xiaoluo ~]# chkconfig --list | grep mysqld
    mysqld             0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭
    [root@xiaoluo ~]# chkconfig mysqld on  <---开机启动
    [root@xiaoluo ~]# chkconfig --list | grep mysql
    mysqld             0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
    
    • 17.必须初始化密码,不然链接不上
    mysql> set password = password("steve201718");
    mysql> flush privileges;
    mysql> exit 
    /usr/local/mysql/bin/mysql -uroot -p NewPassword
    [root@backend-cxy]# ln -s /usr/local/mysql/bin/mysql /usr/bin
    [root@backend-cxy bin]# mysql -p 
    Enter password: 
    
    • 授权root用户使用'NewPassword'从任何机器链接数据库
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'NewPassword' WITH GRANT OPTION;
    
    • 关闭防火墙
    /etc/init.d/iptables stop
    
    • 查看mysql服务是否起来
    [root@backend-cxy bin]# netstat  -antp | grep 3306
    Active Internet connections (servers and established)
    Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name           
    tcp        0      0 :::3306                     :::*                        LISTEN      20723/mysqld        
    
    • 查看链接状态
    [root@backend-cxy log]# netstat -anp | grep 3306
    tcp        0      0 :::3306                     :::*                        LISTEN      20723/mysqld        
    tcp        0      0 ::ffff:192.168.0.13:3306    ::ffff:192.168.1.55:59516   ESTABLISHED 20723/mysqld        
    tcp        0      0 ::ffff:192.168.0.13:3306    ::ffff:192.168.1.55:59248   ESTABLISHED 20723/mysqld           
    
    • 创建mysql用户
    CREATE USER demo IDENTIFIED BY “123456” 
    
    • 授权该用户
    允许用户jack从ip为10.10.50.127的主机连接到mysql服务器,并使用654321作为密码
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'jack'@’10.10.50.127’ IDENTIFIED BY '654321' WITH GRANT OPTION;
    mysql>GRANT ALL PRIVILEGES ON shandong.* TO 'demo'@'%'WITH GRANT OPTION 
    

    相关文章

      网友评论

          本文标题:Install mysql5.7 by compiling so

          本文链接:https://www.haomeiwen.com/subject/qyazpqtx.html