分类: LINUX
2026-05-28 13:29:48
|
1.下载tar包(一般是手动下载tar包):
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
2.将文件移动到 /usr/local/mysql下解压
mv /usr/local/src/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
进入mysql目录:cd /usr/local/mysql;
解压;tar -zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz 得到mysql-8.0.11-linux-glibc2.12-x86_64
重命名; mv mysql-8.0.11-linux-glibc2.12-x86_64 mysql8.0;
3.创建文件夹data,存储文件;
cd /usr/local/mysql8.0/ mkdir ./data
4.创建用户及用户组
# 用户组
groupadd mysql # 用户 (用户名/密码) useradd -g mysql mysql 授权
chown -R mysql.mysql /usr/local/mysql8.0/ # 亲测
5. 初始化数据库:
# 查看当前所在目录
pwd # 若显示/usr/local/mysql8.0,请继续执行,否则请先进入此目录/usr/local/mysql8.0 # 初始化 注意查看是否存在相关目录,若不存在,请新建 ./bin/mysqld --user=mysql --basedir=/usr/local/mysql8.0/ --datadir=/usr/local/mysql/mysql8.0/data/ --initialize ; # 亲测 得到临时密码
6.Mysql配置(按照自己的文件路径配置,关于其他配置,可自行搜索,若有【mysql-safe】的配置,可以先注释掉)
没有my.cnf,mysql.sock文件的话,手工创建,并设置相应的mysql,mysql用户权限
chown -R mysql.mysql mysql.sock
vi /etc/my.cnf
7.建立MySQL服务(注意当前路径应该在mysql8.0,即support-files的根目录)
# 添加Mysql到系统服务(设置开机启动)
cp -a ./support-files/mysql.server /etc/init.d/mysql # 若mysqld,以下mysql相应的修改mysqld,如下图所示 chmod +x /etc/init.d/mysql chkconfig --add mysql # 检查服务是否生效 chkconfig --list mysql
8.启动Mysql服务
登陆Mysql
登录后只能先修改密码)
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
# MySQL 配置文件,
# 数据库目录 /data/mysql
[client] port=3306 # mysql socket 文件存放地址 socket=/tmp/mysql.sock # 默认字符集 default-character-set=utf8
[mysqld]
server-id=1 # 端口 port=3306 # 运行用户 user=mysql # {BANNED}最佳大连接 max_connections=200 socket=/tmp/mysql.sock # mysql 安装目录(解压后文件的目录) basedir=/usr/local/mysql # 数据目录(这里放在我们新建的 /data/mysql 下) datadir=/data/mysql pid-file=/data/mysql/mysql.pid init-connect='SET NAMES utf8' character-set-server=utf8 # 数据库引擎 default-storage-engine=INNODB log_error=/data/mysql/mysql-error.log slow_query_log_file=/data/mysql/mysql-slow.log
# 跳过验证密码
#skip-grant-tables
[mysqldump]
quick max_allowed_packet=16M EOF
可能会有好几个地方有 mysql 的配置文件,它的读取顺序是这样的
/etc/my.cnf
basedir/my.cnf datadir/my.cnf –defaults-extra-file #在读取全局配置文件之后,读取用户配置文件 (~/.my.cnf)之前,读取extra指定的参数文件 ~/.my.cnf 所以我们在 /etc 下的配置文件 my.cnf 是{BANNED}中国第一个读取的文件,读到这个文件后就不会在读后面路劲中的配置文件。
远程连接
1.在 my.cnf 的mysqld 下增加
default_authentication_plugin=mysql_native_password远程连接操作不应该修改mysql中user表中用户为root的记录,而是创建一条root记录
授权 root 用户的所有权限并设置远程访问
CREATE USER 'root'@'%' IDENTIFIED BY '111111';ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '111111';(修改加密规则并更新密码)
设置为远程登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;(操作报语法错误)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION ;(这个命令ok)
GRANT ALL ON 表示所有权限,% 表示通配所有 host,可以访问远程。
刷新权限
所有操作后,应执行
flush privileges;关键的三个命令:> mysql>CREATE USER 'root'@'%' IDENTIFIED BY 'root'; //这个操作是mysql 8.0中得加的> mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; //任何远程主机都可以访问数据库 > mysql> FLUSH PRIVILEGES; //需要输入次命令使修改生效
进入mysql安装目录bin/ 使用safe模式(跳过密码登录),进行重启:
./mysqld_safe --skip-grant-tables
修改加密规则
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 8.0版本 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
password 为你当前密码。
更新 root 用户密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
password 为你新设置的密码。
刷新权限
FLUSH PRIVILEGES;
|