编译安装Mysql详细步骤
程序员文章站
2024-03-25 21:49:34
...
1.编译安装mysql
首先关闭防火墙和selinux
[aaa@qq.com ~]# systemctl stop firewalld && setenforce 0
1.清理安装环境并创建mysql用户
[aaa@qq.com ~]# yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
[aaa@qq.com ~]# userdel -r mysql
[aaa@qq.com ~]# rm -rf /etc/my*
[aaa@qq.com ~]# rm -rf /var/lib/mysql
#可能你没有mysql用户,而且可能也没mysql目录,但是以防万一,最好都敲上去。
[aaa@qq.com ~]# useradd -r mysql -M -s /bin/false
#创建mysql用户,路径最好跟我一样,如果不一样,编译安装的时候会指定用户和路径,你需要改成你自己设置的路径。
2.下载安装包并安装编译环境
从官网下载安装包,我这里用的是mysql5.7
[aaa@qq.com ~]# yum -y install wget
[aaa@qq.com ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz
如果你想自己去官网上下载最新版本,或者我上面的那个链接失效了,可以点击这里查看怎么下载:
mysql官网下载方法
# 安装编译环境
[aaa@qq.com ~]# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake
3.编译安装
[aaa@qq.com ~]# mkdir -p /usr/local/{data,mysql,log} #创建mysql目录,编译安装时候会指定这些路径
[aaa@qq.com ~]# tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/ #解压,如果你的版本跟我的不一样不要直接复制
#注:如果安装的MySQL5.7及以上的版本,在编译安装之前需要安装boost,因为高版本mysql需要boots库的安装才可以正常运行。否则会报CMake Error at cmake/boost.cmake:81错误,安装包里面自带boost包。
[aaa@qq.com ~]# cd /usr/local/mysql-5.7.27/ #进入mysql目录里面
[aaa@qq.com mysql-5.7.27]#cmake . \-DWITH_BOOST=boost/boost_1_59_0/ \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DSYSCONFDIR=/etc \-DMYSQL_DATADIR=/usr/local/mysql/data \-DINSTALL_MANDIR=/usr/share/man \-DMYSQL_TCP_PORT=3306 \-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DEXTRA_CHARSETS=all \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_READLINE=1 \-DWITH_SSL=system \-DWITH_EMBEDDED_SERVER=1 \-DENABLED_LOCAL_INFILE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1
提示:boost也可以使用如下指令自动下载,如果不下载bost压缩包,把下面的这一条添加到配置中第二行
-DDOWNLOAD_BOOST=1/
参数详解:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 安装目录
-DSYSCONFDIR=/etc \ 配置文件存放 (默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \ 数据目录 错误日志文件也会在这个目录
-DINSTALL_MANDIR=/usr/share/man \ 帮助文档
-DMYSQL_TCP_PORT=3306 \ 默认端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ sock文件位置,用来做网络通信的,客户端连接服务器的
时候用
-DDEFAULT_CHARSET=utf8 \ 默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS=all \ 扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \ 支持的
-DWITH_READLINE=1 \ 上下翻历史命令
-DWITH_SSL=system \ 使用私钥和证书登陆(公钥) 可以加密。 适用与长连接。坏处:速度慢
-DWITH_EMBEDDED_SERVER=1 \ 嵌入式数据库
-DENABLED_LOCAL_INFILE=1 \ 从本地倒入数据,不是备份和恢复。
-DWITH_INNOBASE_STORAGE_ENGINE=1 默认的存储引擎,支持外键
[aaa@qq.com mysql-5.7.27]# make && make install
#安装 估计需要半个小时左右
[aaa@qq.com mysql-5.7.27]# echo $?
#查看是否安装成功,如果返回值是0表示成功,如果不是0就表示失败
#如果安装出错,想重新安装:
#不用重新解压,只需要删除安装目录中的缓存文件CMakeCache.txt
2.初始化并修改密码
1.初始化
[aaa@qq.com mysql-5.7.27]# cd /usr/local/mysql
[aaa@qq.com mysql]# chown -R mysql.mysql . #递归给当前目录及其下面的目录和文件添加mysql属主和mysql属组(后面有个. 表示当前目录,不要漏了)
[aaa@qq.com mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
#初始化完成之后,一定要记住提示最后的密码用于登陆或者修改密码
初始化只需要初始化一次
2.修改配置文件并启动mysql
[aaa@qq.com ~]# vim /etc/my.cnf #进入配置文件
# 一定要在mysqld模块下面添加
[mysqld]
basedir=/usr/local/mysql #指定安装目录
datadir=/usr/local/mysql/data #指定数据存放目录
# 启动mysql
[aaa@qq.com ~]# cd /usr/local/mysql
[aaa@qq.com mysql]# ./bin/mysqld_safe --user=mysql & #指定用户
[aaa@qq.com mysql]# netstat -lntp | grep 3306 #查看端口是否起来
# 如果报错说你没有netstat yum -y install net-tools 下载
3.登录并修改密码
1.设置符号连接或环境变量
#绝对路径登录
[aaa@qq.com mysql]# /usr/local/mysql/bin/mysql -uroot -p'你的初始化密码'
如果你嫌绝对路径太麻烦了,可以有两种方法将其变短
第一种:你可以设置一个软连接
[aaa@qq.com mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[aaa@qq.com mysql]# mysql -uroot -p'你的初始化密码'
第二种:添加环境变量
[aaa@qq.com mysql]# vim /etc/profile
#最后一行添加如下
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
[aaa@qq.com mysql]# source /etc/profile #使配置文件生效
[aaa@qq.com mysql]# mysql -uroot -p'你的初始化密码'
2.修改密码
两种方式:
第一种:在mysql里面修改
[aaa@qq.com ~]# mysql -uroot -p'你的初始化密码' #登录
mysql> alter user 'root'@'localhost' identified by '你的新密码';
第二种:用shell命令修改
[aaa@qq.com ~]# mysqladmin -uroot -p'你的初始化密码' password '你的新密码'
#注:修改密码必须大小写数字和特殊符号都有,要不然有可能修改失败
#如果你不想密码中必须有大小写数字和特殊符号,你可以通过修改配置文件来设置密码强度
[aaa@qq.com ~]# vim /etc/my.cnf
#在最后添加如下内容
validate_password=off
[aaa@qq.com ~]# systemctl restart mysqld #重启mysql生效
然后不管通过哪种方式修改密码都可以改成简单的密码