我们来学mysql -- 安装8.4版本
8.4版本
- 下载
- 解压
- 用户
- 目录&用户权限
- my.cnf
- 初始化
- 普通启动
- safe启动
- 检查启动用户
- 登录
- 远程登录用户'root'@'%'
下载
- 地址
- 选择安装包
- 查看OS位数 getconf LONG_BIT
- 查看OS位数 getconf LONG_BIT
- 二进制安装包说明
- 二进制包的文件名会包含 linux 或 glibc 等字样
- 如:mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz
- 二进制包含 bin 目录,其中包含可执行文件(如 mysqld、mysql 等)
解压
tar -xvJf mysql-8.4.4-linux-glibc2.28-x86_64.tar.xz -C /u01/app/oracle2/mysql-8.4.4
用户
- 误区
- 不需要通过mysql用户登录进行安装
- root用户执行安装,创建用户、组和设置目录权限
- mysql用户作用:运行mysql时使用
- 为何不用root用户运行
- 可能涉及到系统安全。如果MySQL以root用户运行,一旦有安全漏洞,攻击者可能获得root权限,对整个系统造成威胁
- 可能涉及到系统安全。如果MySQL以root用户运行,一旦有安全漏洞,攻击者可能获得root权限,对整个系统造成威胁
- 查看用户是否存在
- id mysql
- id mysql
- 创建用户及用户组
目录&用户权限
- 与解压目录平级
- 创建data ,log , tmp 文件夹
- mkdir /u01/app/oracle2/{dbdata,tmp,logs} -pv
- 目录权限分配给mysql用户和组
- chown -R mysql.mysql /u01/app/oracle2
- chown -R mysql.mysql /u01/app/oracle2
my.cnf
- 解压目录中没有这个文件
初始化
./mysqld --defaults-file=/u01/app/oracle2/mysql-8.4.4/my.cnf --basedir=/u01/app/oracle2/mysql-8.4.4 --datadir=/u01/app/oracle2/dbdata --user=mysql --initialize
- 创建 MySQL 内部使用的系统表
- 在log目录下创建了 mysqld_error.log mysqld_slow.log
- 初始化用户权限,通常会创建一个默认的 root 用户,并生成一个临时密码
- 在**/log/mysqld_error.log
普通启动
/u01/app/oracle2/mysql-8.4.4/bin/mysqld --basedir=/u01/app/oracle2/mysql-8.4.4 --datadir=/u01/app/oracle2/dbdata --plugin-dir=/u01/app/oracle2/mysql-8.4.4/lib/plugin --user=mysql --log-error=/u01/app/oracle2/logs/mysqld_error.log --open-files-limit=10240 --pid-file=/u01/app/oracle2/mysql-8.4.4/mysqld.pid --socket=/u01/app/oracle2/mysql-8.4.4/mysql.sock --port=3308
- 命令行参数优先:命令行中指定的参数会覆盖配置文件中的同名参数
- 如果没有在命令行中指定某些参数,MySQL 会按照优先级顺序查找配置文件
- /etc/my.cnf
- /etc/mysql/my.cnf
- /usr/local/mysql/my.cnf
- ~/.my.cnf(当前用户的家目录中的配置文件)
safe启动
/bin/sh /u01/app/oracle2/mysql-8.4.4/bin/mysqld_safe --defaults-file=/u01/app/oracle2/mysql-8.4.4/my.cnf --datadir=/u01/app/oracle2/dbdata --pid-file=/u01/app/oracle2/mysql-8.4.4/mysqld.pid
- 是一个用于启动和监控 mysqld 进程的sh脚本
- /bin/sh 确保脚本在正确的 shell 环境中执行,避免因默认 shell 不同导致的兼容性问题
- 会在 mysqld 进程崩溃时自动重新启动它
检查启动用户
登录
/u01/app/oracle2/mysql-8.4.4/bin/mysql -h 127.0.0.1 -P 3308 -u root -p
- 查看版本
- 执行报错 : You must reset your password using ALTER USER statement before executing this statement.
- 修改密码:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘new_password’;
远程登录用户’root’@‘%’
- 在 MySQL 中,用户是由用户名和主机名共同定义的。
- root@localhost 和 root@% 是两个不同的用户,即使用户名相同。
- 要允许 root 用户从远程连接,创建一个新的用户 root@%,并授予其相应的权限
- CREATE USER ‘root’@‘%’ IDENTIFIED BY ‘root@000’;
- 查看权限
- SELECT * FROM information_schema.USER_PRIVILEGES WHERE GRANTEE = “‘root’@‘%’”;
- SELECT * FROM information_schema.USER_PRIVILEGES WHERE GRANTEE = “‘root’@‘%’”;
- 远程可登录,打不开数据库
- 授权
- GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ WITH GRANT OPTION;
- GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ WITH GRANT OPTION;