# 1.1 卸载系统自带mariadb（冲突）
yum remove -y mariadb-libs
# 1.2 安装依赖
yum install -y libaio-devel numactl-devel
# 1.3 创建mysql用户和组
groupadd mysql
useradd -r -s /sbin/nologin -g mysql mysql
# 1.4 创建数据目录并授权
mkdir -p /data/mysql
chown -R mysql:mysql /data/mysql
chmod -R 755 /data/mysql

# 2.1 解压到/usr/local
tar -zxvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
# 2.2 创建软链接（简化路径）
ln -s /usr/local/mysql-5.7.17-linux-glibc2.5-x86_64 /usr/local/mysql

# 3.1 写入环境变量
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
# 3.2 生效环境变量
source /etc/profile

# 初始化（生成临时密码，记录控制台输出的临时密码）
mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
# 覆盖默认配置文件
cat > /etc/my.cnf << EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
port=3306
user=mysql
character-set-server=utf8
skip-name-resolve
[client]
socket=/tmp/mysql.sock
default-character-set=utf8
EOF


# 6.1 复制服务文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 6.2 授权服务文件
chmod +x /etc/init.d/mysqld
# 6.3 添加开机自启
chkconfig --add mysqld
# 6.4 启动服务
service mysqld start
# 7.1 登录（输入步骤4生成的临时密码）
mysql -uroot -p
# 7.2 执行SQL修改密码（替换newpassword为自定义密码）
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;
exit;

# 7.1 登录（输入步骤4生成的临时密码）
mysql -uroot -p
# 7.2 执行SQL修改密码（替换newpassword为自定义密码）
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;
exit;


mysql -uroot -p
# 允许所有IP访问（替换newpassword为实际密码）
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'newpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;
# 开放3306端口（防火墙）
firewall-cmd --permanent --add-port=3306/tcp
firewall-cmd --reload


#忘记密码


service mysqld stop

# 编辑配置文件
vi /etc/my.cnf
# 在[mysqld]模块下添加一行（复制粘贴即可）
skip-grant-tables



service mysqld start
mysql -uroot  # 无需输入密码，直接回车登录

# 切换到mysql系统库
USE mysql;
# 重置密码（替换newpassword为你要设置的密码）
UPDATE user SET authentication_string = PASSWORD('newpassword') WHERE User = 'root' AND Host = 'localhost';
# 刷新权限
FLUSH PRIVILEGES;
# 退出
EXIT;


#注意：MySQL 5.7 的用户密码字段是authentication_string，而非旧版本的password，这是关键区别。


# 编辑配置文件
vi /etc/my.cnf
# 删除之前添加的skip-grant-tables这一行
# 保存退出（Esc → :wq）
# 重启服务
service mysqld restart
# 用新密码登录（替换newpassword为实际密码）
mysql -uroot -pnewpassword













