1、yum安装MySQL
#关闭防火墙
1 2
| systemctl stop firewalld setenforce 0
|
清理环境
1 2 3 4
| yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y userdel -r mysql rm -rf /etc/my* //配置文件 rm -rf /var/lib/mysql //初始化生成密码的路径目录
|
编辑yum文件
1 2 3 4 5 6 7
| [root@localhost yum.repos.d]# vim mysql.repo [mysql] name=mysql baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/ gpgcheck=1 enabled=1 gpgkey=https://mirrors.ustc.edu.cn/mysql-repo/RPM-GPG-KEY-mysql
|
安装软件
1 2 3 4 5
| # yum repolist enabled | grep mysql # yum -y install mysql-community-server # systemctl start mysqld //第一次启动会自动始化数据库 # systemctl enable mysqld # grep password /var/log/mysqld.log
|
修改密码
5.7默认有临时密码,需要修改,两种方式:
第一种
1 2
| # mysql -uroot -p'uopCBgXBu8,k' mysql> alter user 'root'@'localhost' identified by 'Qianfeng123!@';
|
第二种
1
| # mysqladmin -u root -p'uopCBgXBu8,k' password 'Qianfeng123!@'
|
关闭弱密码限制
1 2 3 4 5 6 7 8 9 10 11
| rpm安装的5.7如下方式修改 # vim /etc/my.cnf validate_password=off
编译安装的5.7如下方式修改 [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data
[mysqld_safe] validate_password=off
|
2、编译安装MySQL
#关闭防火墙
1 2
| systemctl stop firewalld setenforce 0
|
清理环境
1 2 3 4
| yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y userdel -r mysql rm -rf /etc/my* rm -rf /var/lib/mysql
|
创建MySQL用户
1 2
| useradd -r mysql -M -s /sbin/nologin # -M指定不安装家目录
|
安装编译工具,以及依赖软件
1
| yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake
|
创建mysql目录
1
| mkdir -p /usr/local/{data,mysql,log}
|
官方下载MySQL的boost包
1
| wget https://mirrors.aliyun.com/mysql/MySQL-5.7/mysql-boost-5.7.36.tar.gz?spm=a2c6h.25603864.0.0.b21f63aftvppVw
|
更改包名
1
| mv mysql-boost-5.7.36.tar.gz?spm=a2c6h.25603864.0.0.b21f63aftvppVw mysql-boost-5.7.36.tar.gz
|
解压下载的软件包
1
| tar zxvf mysql-boost-5.7.36.tar.gz -C /usr/local/
|
切换目录
1
| cd /usr/local/mysql-5.7.36/
|
编译安装
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| 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
|
编译安装
1 2
| make -j2 && make -j2 install # -j2是指定2核
|
#如果安装出错,想重新安装:不用重新解压,只需要删除安装目录中的缓存文件
配置文件添加命令路径
1 2 3
| cat >> /etc/profile <<EOF mysql=/user/local/mysql/bin/ EOF
|
重启profile文件
#找到安装目录,拷贝mysql.service脚本文件到/etc/init.d/目录下,添加开机启动
1 2 3 4 5
| cp /usr/local/mysql/support-files/mysql.service /etc/init.d/mysqld chmod a+x /etc/init.d/mysqld # chkconfig: 2346 63 80 chkconfig--add mysqld systemctl daemon-reload
|
进入安装目录修改权限
初始化
1
| ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
|
初始化,只需要初始化一次,初始化完成之后,一定要记住提示最后的密码用于登陆或者修改密码
添加配置文件,删除旧配置文件之后,再添加如下内容
1 2 3 4 5
| cat >> /etc/my.cnf << EOF [mysqld] basedir=/usr/local/mysql #指定安装目录 datadir=/usr/local/mysql/data #指定数据存放目录 EOF
|
杀死原进程
重启MySQL服务
1 2 3 4
| systemctl start mysqld 前提关闭之前的进程,再用start启动MySQL #systemctl status mysqld #systemctl stop mysqld #sh mysqld restart
|
启动
1 2
| cd /usr/local/mysql ./bin/mysqld_safe --user=mysql &
|
获取密码
1 2 3 4 5
| #temp_password=$(sudo cat bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data | grep 'temporary localhost' | awk '{print $NF}') #mysql -uroot -p"${temp_password}" --connect-expired-password <<EOF #ALTER USER 'root'@'localhost' IDENTIFIED BY "${Mysql_Pass}"; #FLUSH PRIVILEGES; #EOF
|
登录测试
1
| # /usr/local/mysql/bin/mysql -uroot -p'ZrSw)Ns_*9iR'
|
#如果需要重新初始化…
1 2 3
| # killall mysqld # rm -rf /usr/local/mysql/data # bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
|