编译安装准备条件
先去下载mysql版本,放到根目录下
解压 tar -zxvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
-- /usr/local 目录下创建文件夹存
[root@localhost] mkdir /usr/local/mysql
-- 移动
[root@localhost] mv mysql-5.7.28-linux-glibc2.12-x86_64/* /usr/local/mysql
-- 添加mysql组和mysql 用户: -- 添加mysql组:
[root@localhost study] groupadd mysql
-- 添加mysql用户:
[root@localhost study] useradd -r -g mysql mysql
-- 配置MySQL
[root@localhost study] cd /usr/local/mysql
-- 主:从5.7.18开始不在二进制包中提供my-default.cnf文件
-- 进入MySQL的bin目录
-- 查看MySQL对于配置文件的查找路径,越左优先查找
[root@ mysql] ./bin/mysql --help | grep 'Default options' -A 1
-- 创建配置文件
[root@localhost mysql] rm -rf /etc/my.cnf
[root@localhost mysql] touch /etc/my.cnf
[root@localhost mysql] vi /etc/my.cnf
[mysqld]
port=3306
datadir=/var/lib/mysql/data
socket=/var/lib/mysql/data/mysql.sock
user=root
max_connections=151
symbolic-links=0
# 设置忽略大小写
lower_case_table_names = 1
# 指定编码
character-set-server=utf8
collation-server=utf8_general_ci
#指定客户端连接mysql时的socket通信文件路径
[client]
socket=/var/lib/mysql/data/mysql.sock
:wq 保存
-- 设置开机启动
-- 复制启动脚本到资源目录
[root@localhost mysql] cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
-- 增加 mysqld 服务控制脚本执行权限
[root@localhost mysql] chmod +x /etc/rc.d/init.d/mysql
-- 将 mysqld 服务加入到系统服务
[root@localhost mysql] chkconfig --add mysql
-- 检查mysqld服务是否已经生效
[root@localhost mysql] chkconfig --list mysql
[root@localhost mysql] mkdir /var/lib/mysql/
[root@localhost mysql] mkdir /var/lib/mysql/data
[root@localhost mysql] chown -R mysql:mysql /var/lib/mysql/
-- 环境变量配置
[root@localhost mysql] vi /etc/profile
export PATH = “$PATH:/usr/local/mysql/bin”
-- 刷新
[root@localhost mysql] source /etc/profile
-- 检测
[root@localhost mysql] echo $PATH
[root@localhost mysql] mysqld --user=root --basedir=/usr/local/mysql --datadir=/var/lib/mysql/data --initialize
-- 注意显示的最后这一行代码的意思就是密码
。。。。。 [Warning] CA certificate ca.pem is self signed.
-- 启动MySQL
[root@localhost mysql] service mysql start
-- 修改登入密码
[root@localhost mysql] mysql -u root -p
mysql> alter user 'root'@'localhost' identified by '你设置的密码';
mysql> flush privileges;
mysql> quit;
-- 修改/usr/local/mysql/etc/my.cnf 文件
-- 注释skip-grant-tables
-- 重启MySQL
[root@localhost mysql] service mysql restart
-- 测试
[root@localhost mysql] mysql -u root -p
-- 配置远程访问
-- 防火墙端口设置,便于远程访问
[root@localhost mysql] firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@localhost mysql] firewall-cmd --reload
-- 查看端口
启动防火墙服务:systemctl ummask firewalld 启动防火墙:systemctl start firewalld
-- 进入MySQL
mysql> grant all privileges on *.* to root@'%' identified by "你设置的密码";
mysql> flush privileges;
-- 如果没有效果可以尝试重启一下MySQL
祝你早日设置成功!!!!!