1、准备
1.1、上传
1.2、解压
tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /zhenghuhu/software
1.3、修改目录
mv mysql-5.7.30-linux-glibc2.12-x86_64/ mysql57
2、安装
2.1、确保mysql安装之前有libaio依赖
yum search libaio
yum install libaio
2.2、删除系统自带mariadb
[root@iZntd6u9h3x4erZ ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@iZntd6u9h3x4erZ ~]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
2.3、删除etc目录下的my.cnf文件(没有则不用管了)
rm -rf /etc/my.cnf
2.4、新建mysql数据及日志存放路径:
mkdir /data
cd /data
mkdir mysql
cd mysql
mkdir data # 存放mysql数据
2.5、修改配置文件
有的话直接修改,没有就创建
touch /etc/my.cnf
vi /etc/my.cnf
配置如下
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
port = 3306 # 设置3306端口
socket=/data/mysql/mysql.sock # 套接字保存路径
basedir=/zhenghuhu/software/mysql57 # 设置mysql的安装目录
datadir=/data/mysql/data # 设置mysql数据库的数据的存放目录
log-error=/data/mysql/error.log # 报错日志路径
pid-file=/data/mysql/mysql.pid
max_connections=1000 # 允许最大连接数
character-set-server=utf8 # 服务端使用的字符集默认为8比特编码的latin1字符集
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
max_allowed_packet=1024M
[mysqld_safe]
socket=/data/mysql/mysql.sock
[client]
socket=/data/mysql/mysql.sock
[mysql.server]
socket=/data/mysql/mysql.sock
2.6、创建mysql用户组
[gz_admin@ ~]# groupadd mysql
#创建一个用户名为mysql的用户并加入mysql用户组
[gz_admin@ ~]# useradd -g mysql mysql
#制定password 为 mysql123
[gz_admin@~]# passwd mysql
Changing password for user mysql.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
密码为@zhh123
2.7、修改mysql目录权限,命令如下:
chown -R mysql:mysql /zhenghuhu/software/mysql57 # 修改mysql属主给mysql用户
chown -R mysql:mysql /data/mysql # 修改data属主给mysql用户
chmod -R 755 /data/mysql /zhenghuhu/software/mysql57 # 写入权限
2.8、安装初始化mysql,命令如下
./bin/mysqld --user=mysql --basedir=/zhenghuhu/software/mysql57 --datadir=/zhenghuhu/software/mysql57/data --initialize
2.9、将mysql进程放入系统进程中,命令如下:
进入MySQL的解压目录,进入support-files
修改mysql.server文件,添加下面的内容
basedir=/zhenghuhu/software/mysql57
datadir=/zhenghuhu/software/mysql57/data
mysqld_pid_file_path=/data/mysql/mysql.pid
拷贝到/etc/init.d/mysqld
cp support-files/mysql.server /etc/init.d/mysql
2.10、查看初始化密码(在配置的data数据文件夹中)
cat /data/mysql/error.log
I49GPG!:ryXe
2.11、启动mysql
service mysql start
service mysql start
service mysql stop
service mysql restart
进入MySQL安装目录(我的就是/zhenghuhu/software/mysql57/bin)
./mysql -uroot -p
输入密码:
3、重置root密码
3.1、编辑MySQL配置文件my.cnf
vi /etc/my.cnf
#编辑文件,找到[mysqld],在下面添加一行skip-grant-tables
[mysqld]
skip-grant-tables
此出我没有设置root用户的密码,可以直接登录,如果像设置root密码,可以进行下面的操作
- 进入mysql
mysql -uroot -p
set password for root@localhost=password('你的密码');
如果修改成功,下面的直接忽略
3.2、修改MySQL数据库配置文件无密码登录后,修改密码报错:
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
3.3、先执行:
flush privileges;
3.4、再执行修改密码命令,可以了:
set password for root@localhost=password('你的密码');
修改密码的三种形式
方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
3.2、配置path
进入vi /etc/profile
在文尾添加:
export PATH=$PATH:/zhenghuhu/software/mysql57/bin
生效配置文件:
source /etc/profile
接下来MySQL可以随心所欲的启动
mysql -uroot -p
4、mysql服务开启远程访问
问题现象:使用mysql远程登录命令mysql –uroot –h192.168.1.102 –p时,报错MySQL ERROR 1130 (HY000): Host ‘XXXX’ is not allowed to connect to this MySQL server
问题原因:mysql服务器出于安全考虑,默认只允许本地登录数据库服务器。
问题解决:登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从"localhost"改称"%",然后重启mysql这样就允许所有的远程机器进行访问了。
- 修改mysql表
Copymysql -u root -p
mysql>use mysql;
mysql>update user set host='%' where user='root';
mysql>flush privileges;
mysql>select host, user from user;
mysql>quit
- 重启mysql
service mysql restart