当前位置:   article > 正文

源码安装mysql,详细

源码安装mysql

一、首先卸载服务器上自带的MariaDB或mysql数据库
1、卸载rpm包
    1.1、查看mysql相关包:  
        >> rpm -qa|grep mysql  
        >> rpm -qa| grep maria

    1.2卸载mysql的rpm包: 
        >> rpm -e --nodeps xxxx(上一步查出来的rpm包)
    
2、删除相关目录
    2.1、查看mysql命名的目录文件: 
        >> find / -name "mysql"
    
    2.2、删除相关目录: 
        >> rm -rf xxx(上一步查出来的目录,注意别删错了,比如解压的安装包名也带有mysql,可用 grep反向过滤)
    
    主要为以下目录:
    /var/share
    /usr/local/lib
    /usr/local/lib64
    /usr/bin
    等
    
二、源码安装
1、检查、安装相关依赖
    gcc 
    gcc-c++
    ncurses
    ncurses-devel
    openssl-devel
    make
    cmake
    不过大部分服务器应该自带的有
    
2、获得源码包
    2.1、下载rpm源码包,官网:https://downloads.mysql.com/archives/community/。
        选择想要下载mysql版本,注意Operating System选项选择最后一个source code。
        
    2.2、获取源码
        -如果下载的是压缩包,直接上传服务器解压即可。
        -但如果是src.rpm格式的文件,想要一个额外步骤。同样上传服务器,运行以下命令, 
        即可在当前目录下找到源码包mysql-xxx-xxx.tar.gz 和 boost-xxx-xxx.tar.bz2
            >> rpm2cpio Mysql-xxx-xxx.src.rpm | cpio vid0

        解压:
            >> tar vxf mysql-xxx-xxx.tar.gz 得到mysql源码文件
            >> tar vxf boost-xxx-xxx.tar.gz 得到boost源码文件,注意一会cmake时需要用到boost解压后的文件

3、编译源码包
    3.1、创建mysql用户、用户组。以root用户登录系统,增加组、用户。
        >> groupadd mysql
        >> useradd -g mysql mysql
    
    3.2、用cmake来编译源码,并选择相应编译参数,除了安装位置,其他参数都可以使用my.cnf配置文件修改。先进入刚刚解压的mysql-xxx目录,
        >> cd mysql-xxx
        >> cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql                #安装路径
        >> cmake -DWITH_BOOST=..                                        #修改安装路径,需要指定刚刚解压的boost目录,因为是和mysql-xxx同一级目录,所以使用相对目录指定就行 
        >> cmake -DSYCCONFDIR=/etc                                      #存放my.cnf配置文件的地方
        >> cmake -DMYSQL_DATADIR=/usr/local/mysql/data                  #数据库数据存放目录
    
    3.3、安装
        >> make && make install
    
    3.4、编辑配置文件,具体的网上很多。使用mysqld --verbose可以查看所有的参数选项及当前默认值
        >> vi /etc/my.cnf
        >> chmod 600 /etc/my.cnf            #修改配置文件权限
        
        
    3.5、在安装路径下创建系统数据库和系统表,--user表示这些对象的操作系统owner
        >> cd /usr/local/mysql
        >> ./bin/mysqld --initialize --user=mysql
        
        # 初始化完后会生成一个初始密码,在界面上显示,保存下来。一会修改密码需要用到:r6i4Xs1cuw&K
    3.6、将mysql设置成系统服务
        >> cp support-files/mysql.server /etc/init.d/mysqld
        >> chkconfig mysqld on
        
        
    3.7、设置目录权限,将data目录所有者改成mysql(源码安装默认数据目录为var),其他目录为root.
        >> chown -R root:mysql .
        >> chown -R mysql data              #我这里指定的data目录为数据目录
        
        
    3.8、启动mysql
        >> ./bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
        >> systemctl start mysqld
        
注意:若配置文件my.cnf中指定的参数有目录路径,则需保证所有路径ower为mysql。否则会因为没有权限而报错。
    如指定日志文件目录log-error = /var/log/mysql/mysql.log,则需创建mysql目录,并修改ower为mysql。
    >> mkdir /var/log/mysql
    >> chown mysql:mysql /var/log/mysql
    
    3.9、将mysql命令添加到环境变量中
        >> echo 'export PATH=$PATH:/usr/local/mysql/bin:/user/local/mysql/sbin' >> /etc/profile
        >> source /etc/profile
    
    3.10、登录数据库修改密码
        >> mysql -uroot -p
        > (这里输入刚刚initialize时保存的密码)
        
        如果出现报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/xxx/xxx/mysql.sock' (2)
        则说明:
            1、mysql.sock文件上级目路权限不对
            2、mysql.sock文件上级目录不存在
            3、编译时指定的socket文件路径和配置文件中指定的路径不同
            
        这里进入mysql交互界面====================>>>
        mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin_123';             #修改数据库登录密码
        
        注意:这里密码不能太短,否则修改不成功,需要超过8位即可。
        
        如果后面想设置简单点的密码,需要修改两个参数:validate_password_policy和validate_password_length。
        但是刚安装可能没有加载validate_password 插件,修改时会提示: 
            ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
        安装及设置:
            mysql> install plugin validate_password soname 'validate_password.so';
            Query OK, 0 rows affected (0.02 sec)
            
            mysql> set global validate_password_policy=0;
            Query OK, 0 rows affected (0.00 sec)
            
            mysql> set global validate_password_length=你自己想要的长度;
            Query OK, 0 rows affected (0.00 sec)
        
        (好啦!现在就可以随便设置密码,数据库也能正常使用了>.<)
        
        
        

    

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/646698
推荐阅读
相关标签
  

闽ICP备14008679号