linux下MySQL安装与卸载
MySQL5.7安装
进到root用户
sudo -i
安装目录
[root@localhost/]# cd /usr/local/
下载解压安装包
下载mysql5.7.35版本的安装包
1 [root@localhost local]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
解压安装包
1 [root@localhost local]#tar -zxvf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz
配置
重命名为mysql目录
[root@localhost local]#mv mysql-5.7.35-linux-glibc2.12-x86_64/ mysql
创建mysql用户组和用户
[root@localhost local]# groupadd mysql[root@localhost local]# useradd -r -g mysql mysql[root@localhost local]# groups mysql[root@localhost local]# cd mysql/
创建目录
[root@localhost mysql]# mkdir data
赋权
[root@localhost mysql]# chown -R mysql:mysql ./
配置my.cnf
[root@localhost mysql]# vim /etc/my.cnf
打开配置文件(只读O 编辑E 恢复R 删除D 推出Q 终止A)
vi /etc/my.cnf
配置内容
[mysqld]bind-address=0.0.0.0
port=3306
user=mysql
basedir=/root/mysql
datadir=/root/mysql/data
socket=/tmp/mysql.sock
log-error=/root/mysql/data/mysql.err
pid-file=/root/mysql/data/mysql.pid
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
max_connections=512
lower_case_table_names=1
default-time-zone = '+8:00'
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
log-bin=mysql-bin
binlog-format=ROW
server_id=1
编辑页dd删除内容 esc键退出 :wq保存退出 :wq!强制退出
初始化 MySQL
初始化数据库
sudo /root/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
验证步骤
检查新目录权限:
ls-ld /var/lib/mysql
应该显示:drwxr-x--- 2 mysql mysql 4096 Jul 3 10:00 /var/lib/mysql
检查配置文件:
grep-E'datadir|log-error|pid-file' /etc/my.cnf
应该显示新路径:
datadir=/var/lib/mysql
log-error=/var/lib/mysql/mysql.err
pid-file=/var/lib/mysql/mysql.pid
查看初始化密码
sudo cat /var/lib/mysql/mysql.err | grep temporary
安装缺失的依赖库
(在较新 Linux 发行版上安装旧版 MySQL 时会出现系统缺少 MySQL 运行所需的库文件)
sudo yum install ncurses-compat-libs
验证安装
ldconfig -p | grep libncurses.so.5
进入MySQL
/root/mysql/bin/mysql -u root -p'密码'
修改密码
1.先设置一个符合要求的临时密码(满足复杂度要求)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'TempPass123!';
2.刷新权限:
FLUSH PRIVILEGES;
3.退出当前会话:
EXIT;
4.用新密码重新登录:
/root/mysql/bin/mysql -u root -p'TempPass123!'
5.设置简单密码:
SETGLOBAL validate_password_policy=LOW;
ALTERUSER'root'@'localhost' IDENTIFIED BY'020103';
卸载数据库
停止 MySQL 服务
/root/mysql/support-files/mysql.server stop
删除 MySQL 安装文件
rm -rf /root/mysql
删除 MySQL 数据目录
rm -rf /var/lib/mysql
删除配置文件
rm -f /etc/my.cnf
rm -f /etc/my.cnf.rpmsave # 如果存在
清理相关文件
rm -f /tmp/mysql.sock
rm -f /var/log/mysqld.log
删除 MySQL 用户和组
userdel-r mysql
groupdel mysql
验证用户是否已经删除
id mysql
输出id:mysql:no such user 则删除用户成功
MySQL8.0安装(系统包管理器安装)
RPM
RPM是一种Linux系统的软件包管理工具,对软件包进行安装、升级、卸载和查询等操作。
yum
Yum(Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
YUM相当于在PRM基础上进行了封装,使用YUM后底层还是调用PRM进行包安装。
yum常用命令
- 1. 列出所有可更新的软件清单命令:yum check-update
- 2. 更新所有软件命令:yum update
- 3. 仅安装指定的软件命令:yum install <package_name>
- 4. 仅更新指定的软件命令:yum update <package_name>
- 5. 列出所有可安裝的软件清单命令:yum list
- 6. 删除软件包命令:yum remove <package_name>
- 7. 查找软件包命令:yum search <keyword>
- 8. 清除缓存命令:
- yum clean packages: 清除缓存目录下的软件包
- yum clean headers: 清除缓存目录下的 headers
- yum clean oldheaders: 清除缓存目录下旧的 headers
- yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
安装
安装MySQL包
sudo yum install mysql
安装MySQL 服务器
sudo yum install mysql-server
启动 MySQL 服务
sudo systemctl start mysqld
检查服务状态
sudo systemctl status mysqld
正常状态应显示 active (running)
安全初始化
sudo mysql_secure_installation
设置开机子启MySQL
systemctl enable mysql
登录 MySQL
mysql -u root -p
创建新用户
CREATE USER '账号'@'localhost' IDENTIFIED BY'密码';
‘localhost’本地访问 ‘%‘允许远程访问
授予用户所有权限
GRANT ALL PRIVILEGES ON . TO '账号'@'localhost';
刷新权限
FLUSH PRIVILEGES;
验证
检查用户是否创建成功
SELECT User, Host FROM mysql.user WHERE User = '账号';
检查权限是否生效
SHOW GRANTS FOR '账号'@'localhost';
查看所有用户(管理员)
SELECT User, Host FROM mysql.user;
系统内置用户
mysql.session它是供MySQL内部服务使用的系统账户
mysql.sys性能监控 数据库对象的安全执行上下文
mysql.infoschema可以查询数据库和表的元数据信息
修改用户密码(管理员)
ALTER USER '账号'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;
删除MySQL8.0
停止服务
sudo systemctl stop mysqld
卸载相关包
sudo rpm-e--nodeps\mysql-server-8.0.41-1.0.1.module+an8.9.0+11301+a97b87fb.x86_64 \mysql-8.0.41-1.0.1.module+an8.9.0+11301+a97b87fb.x86_64 \mysql-common-8.0.41-1.0.1.module+an8.9.0+11301+a97b87fb.x86_64 \mysql-errmsg-8.0.41-1.0.1.module+an8.9.0+11301+a97b87fb.x86_64
清理残留文件和目录
sudo rm-rf /var/lib/mysql /etc/my.cnf* /root/mysql
验证完全卸载
rpm-qa| grep-i mysql