检查是否有残留
rpm -qa|grep -i mysql
whereis mysql | xargs rm -rf
find / -name mysql | xargs rm -rf
安装前准备
groupadd mysql #创建mysql用户组
useradd -g mysql mysql -s /bin/false #创建mysql用户并加入mysql用户组,不允许mysql用户登陆系统
mkdir -p /data/mysql #创建msyql数据库存放目录
mkdir -p /usr/local/mysql #创建mysql安装目录
passwd mysql //为mysql创建登录密码
二进制安装
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-i686.tar.gz
tar -xvf mysql-5.7.24-linux-glibc2.12-i686.tar.gz
cp -r mysql-5.7.24-linux-glibc2.12-i686 /usr/local/mysql
chown mysql:mysql /data/mysql
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql #初始化
说明:此条语句执行时容易报错,成功至少要满足以下几个条件
① /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就是密码。
源码安装
#下载安装包
wget -c https://github.com/Kitware/CMake/releases/download/v3.13.3/cmake-3.13.3.tar.gz
wget -c http://ftp.gnu.org/gnu/bison/bison-3.2.4.tar.gz
wget -c http://ftp.gnu.org/gnu/m4/m4-1.4.18.tar.gz
wget -c http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
wget -c ftp://ftp.gnu.org/gnu/ncurses/ncurses-6.0.tar.gz
wget -c https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz
#安装gcc
yum -y install gcc gcc-c++
#安装cmake-3.13.3
cd cmake-3.13.3
./bootstrap
gmake
make install
cmake --version #查看版本
#安装bison-3.2.4
cd bison-3.2.4
./bootstrap
make
make install
#安装m4-1.4.18
cd m4-1.4.18
./bootstrap
make
make install
#安装Boost1.59
mv boost_1_59_0 /usr/local/boost_1_59_0
cd /usr/local/boost_1_59_0
./bootstrap.sh
./bjam
./bjam install
#默认安装到 /usr/local/lib
#测试一下Boost是否安装成功
vim main.cpp
/**
#include
#include
int main()
{
using boost::lexical_cast;
int a = lexical_cast("123");
double b = lexical_cast("123.12");
std::cout<
设置mysql服务
ln -s /usr/local/mysql/bin/mysql /usr/bin #创建软链接
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
chkconfig --level 35 mysql on
配置环境变量
echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile //把mysql的bin路径加入PATH
source /etc/profile //让PATH变量修改立即生效
开放3306端口号
vim /etc/sysconfig/iptables
加入 -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables restart
重置密码
方法一:修改配置文件my-default.cnf
⒈打开配置文件my-default.cnf,然后在里面找到 [mysqld] 这一项,然后在该配置项下添加skip-grant-tables 这个配置,然后保存文件。
service mysql restart
方法二:进入mysql安全模式
service mysql stop
/usr/local.mysql/bin/msyqld_safe --skip-grant-tables
设置密码
mysql> use mysql;
mysql> update user set authentication_string=password('password') where user='root';
mysql> flush privileges;
mysql> quit;
#说明:执行sql语句的时候,如果出现ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement. 则需要先执行一下flush privileges.
设置外网可访问
方法一:授权法
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
方法二:该表法
mysql> use mysql
mysql> update user set host='%' where user='root' and host='localhost';
mysql> flush privileges;
mysql> quit;
如果报错 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> set password=password('password');
然后再使用上面命令设置
创建证书开启SSL验证
/usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/data/mysql/data #自动创建证书开启SSL验证
vim /etc/my.conf
加入
ssl-ca=/data/mysql/data/ca.pem
ssl-cert=/data/mysql/data/server-cert.pem
ssl-key=/data/mysql/data/server-key.pem
#查看ssl参数状态,查看have_ssl,为YES,这表示已经开始支持SSL了
mysql > show variables like '%ssl%';
报错:Please install GNU M4 ,安装GNU make
下载地址:ftp://ftp.gnu.org/gnu/make/
tar -zxvf make4.2.tar.gz
cd make4.2
./configure
make
make install
内存不足引起的编译(make)错误
dd if=/dev/zero of=/root/swapfile bs=1M count=1024
mkswap /root/swapfile
swapon /root/swapfile
echo "/root/swapfile swap swap defaults 0 0">>/etc/fstab