[root@mysql ~]# yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y [root@mysql ~]# userdel -r mysql [root@mysql ~]# rm -rf /etc/my* [root@mysql ~]# rm -rf /var/lib/mysql 下载yum源的rpm安装包 [root@mysql ~]# yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm [root@mysql ~]# vim /etc/yum.repos.d/mysql-community.repo 把安装5.7的源打开, 关闭安装8.0的源 这里有第二种修改的方法,方便我们使用脚本修改 [root@mysql ~]# yum repolist all |grep mysql [root@mysql ~]# yum-config-manager --disable mysql80-community [root@mysql ~]# yum-config-manager --enable mysql57-community #关闭防火墙和selinux [root@mysql ~]# sed -ri s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config && setenforce 0 [root@mysql ~]# systemctl stop firewalld && systemctl disable firewalld #安装必要的软件包 [root@mysql ~]# yum -y groupinstall "Development Tools" [root@mysql ~]# yum -y install mysql-community-server [root@mysql ~]# systemctl start mysqld && systemctl enable mysqld 从日志中找出密码(有可能没有密码) [root@mysql ~]# grep "password" /var/log/mysqld.log 2018-12-26T22:41:24.218413Z 1 [Note] A temporary password is generated for root@localhost: %i+g10uS.dre #登陆数据库 [root@mysql ~]# mysql -uroot -p'%i+g10uS.dre' 修改密码方法2:mysqladmin # [root@localhost ~]# mysqladmin -u root -p'-ojEtMaGU0zN' password 'QianFeng@123' 补充: [root@mysql ~]# vim /etc/my.cnf # 关闭mysql密码强度策略,生产环境切勿尝试,首次启动不可关闭 validate-password=OFF # 跳过密码进入数据库,用于忘记密码时使用 skip-grant-tables # 之前的博客中写了如何用两种方法更改密码,这里不赘述。
##所需要的依赖及安装mysql的包 [root@mysql_source ~]# yum -y groupinstall "Development Tools" [root@mysql_source ~]# yum -y install ncurses ncurses-devel openssl-devel bison libgcrypt gcc gcc-c++ make cmake bison Linux下C/ ncurses:字符终端处理库 [root@mysql_source ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.24.tar.gz ##在系统中添加运行mysqld进程的用户mysql [root@mysql_source ~]# groupadd mysql [root@mysql_source ~]# useradd -M -g mysql -s /sbin/nologin mysql ##在系统中添加自定义mysql数据库目录及其他必要目录 [root@mysql_source ~]# mkdir -p /usr/local/{data,mysql,log,tmp} [root@mysql_source ~]# chown -R mysql:mysql /usr/local/{data,mysql,log,tmp} ##将mysql-boost-5.7.24.tar.gz解压到当前目录,并执行部署操作 [root@mysql_source ~]# tar xf mysql-boost-5.7.24.tar.gz [root@mysql_source ~]# cd mysql-5.7.24 [root@mysql_source mysql-5.7.24]# 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 默认的存储引擎,支持外键 [root@mysql_source mysql-5.7.24]# echo $? 0 [root@mysql_source mysql-5.7.24]# make -j ` ...... [100%] Built target udf_example [root@mysql_source mysql-5.7.24]# echo $? 0 [root@mysql_source mysql-5.7.24]# make install ...... -- Installing: /usr/local/mysql/support-files/mysql.server [root@mysql_source mysql-5.7.24]# echo $? 0 [root@mysql_source mysql-5.7.24]# Congratulations Complete! ##初始化MySQL安装配置 1.提升MySQL命令为系统级别命令 [root@mysql_source ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin'>>/etc/profile [root@mysql_source ~]# source /etc/profile 2.拷贝默认配置文件至/etc/my.cnf中 [root@mysql_source mysql]# chown -R mysql.mysql /usr/local/mysql [root@mysql_source ~]# cd /usr/local/mysql/mysql-test/include [root@mysql_source include]# cp /etc/{my.cnf,my.cnf.bak} [root@mysql_source include]# vim /etc/my.cnf [mysqld] basedir = /usr/local/mysql # 安装目录 datadir = /usr/local/data # 数据存放目录 tmpdir = /usr/local/tmp # /tmp缓存目录 socket = /usr/local/tmp/mysql.sock # 指定socket文件的位置 pid_file = /usr/local/tmp/mysqld.pid # 指定pid文件的位置 log_error = /usr/local/log/mysql_error.log # 错误日志的位置 slow_query_log_file = /usr/local/log/slow_warn.log # 慢日志查询 server_id = 1 # server-id=?? user = mysql # 指定用户 port = 3306 # 指定端口 bind-address = 0.0.0.0 # 监听地址(允许所以ip访问) character-set-server = utf8 # 字符集 default_storage_engine = InnoDB # 引擎 3.执行数据库服务初始化操作 [root@mysql_source mysql]# mysqld --defaults-file=/etc/my.cnf --initialize --user='mysql' 4.启动mysqld服务 [root@mysql_source mysql]# mysqld_safe --defaults-file=/etc/my.cnf & [1] 25705 2019-8-18T09:19:35.334751Z mysqld_safe Logging to '/usr/local/log/mysql_error.log'. 2019-8-18T09:19:35.379829Z mysqld_safe Starting mysqld daemon with databases from /usr/local/data 5.设置mysql.socket软链接到mysql命令指定的目录中 [root@mysql_source ~]# ln -s /usr/local/tmp/mysql.sock /tmp/mysql.sock 6.配置mysqld服务的管理工具(便于启动) [root@mysql_source support-files]# cd /usr/local/mysql/support-files [root@mysql_source support-files]# cp mysql.server /etc/init.d/mysqld [root@mysql_source support-files]# chkconfig --add mysqld [root@mysql_source support-files]# chkconfig mysqld on ##登录数据库并进行更改密码 [root@mysql_source mysql]# grep "password" /usr/local/log/mysql_error.log 2019-8-18T09:18:34.214401Z 1 [Note] A temporary password is generated for root@localhost: ejhszb2:m3wJ [root@mysql_source tmp]# mysql -uroot -p"ejhszb2:m3wJ"
[root@zhangyang tmp]# yum install --downloadonly --downloaddir=/root/mypackages/ httpd-2.2.6-40.el7 62 tar -xf mysql-5.7.36-linux-glibc2.12-x86_64.tar 163 ls 164 tar -xf mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz 165 rm -rf mysql-5.7.36-linux-glibc2.12-x86_64.tar 166 rm -rf mysql-test-5.7.36-linux-glibc2.12-x86_64.tar.gz 167 ls 168 cd mysql-5.7.36-linux-glibc2.12-x86_64/ 169 ls 170 useradd -M mysql -s /sbin/nologin 173 mv mysql-5.7.36-linux-glibc2.12-x86_64 /usr/local/mysql-5.7.36 174 cd /usr/local/ 175 cd mysql-5.7.36/ 179 vim /etc/my.cnf 180 mkdir -p /data/mysql-5.7.36 183 echo "export PATH=$PATH:/usr/local/mysql-5.7.36/bin" >> /etc/profile 184 source /etc/profile 187 mysql # 确认已经有了命令 188 mysqld --initialize-insecure --user=mysql 189 vim /etc/my.cnf 190 mysqld --initialize-insecure --user=mysql 191 ll /data/mysql-5.7.36/ 192 cp /usr/local/mysql-5.7.36/support-files/mysql.server /etc/init.d/mysqld 193 /etc/init.d/mysqld start 196 chkconfig --add mysqld 198 chkconfig --list
以上。