MySQL 数据库的基础设定
数据库基础知识
1 )数据库:
- 物理操作系统文件或其他形式文件类型的集合
- 一种特殊格式的文件,这种文件需要通过特殊接口(数据库软件)来进行读写
2 )数据库分类:(流行的三种数据库模型)
- 层次式数据库
- 网状数据库
- 关系型数据库 例如 Oracle 和 MySQL 等
MySQL
MySQL 简介:是⼀个关系型数据库管理系统,由瑞典MySQL AB公司开发,后来被Sun公司收购,Sun公司后来⼜被Oracle公司收购,⽬前属于Orac旗下。
MySQL 相关软件 —— mariadb
- dnf install mariadb-server.x86_64 -y # 应用 yum 安装 mariadb 软件
mariadb 软件基本信息
- mariadb.server # 服务名称
- 3306 # 默认端口
- /etc/my.cnf #MySQL配置文件
- /var/lib/mysql # 数据库文件存储目录, 当需要重新安装mariadb时需要清理此目录或备份(整个目录)
启动 MySQL
- systemctl enable --now mariadb
- netstart -tulnp | grep 'mysql'
扩展 netstart 命令 —— 用于显示各种网络相关信息
- -a (all)显示所有选项,默认不显示LISTEN相关
- -t (tcp)仅显示tcp相关选项
- -u (udp)仅显示udp相关选项
- -n 拒绝显示别名,能显示数字的全部转化成数字。
- -l 仅列出有在 Listen (监听) 的服務状态
- -p 显示建立相关链接的程序名
MySQL 的安全初始化
- vim /etc/my.cnf # 在默认情况下数据库的网络接口是完全开放的,所以为了安全起见,我们应该手动将网络接口关掉
- systemctl restart mariadb # 重启 mariadb.server
- mysql_secure_installation # 数据库起始的状态是没有密码的,没有密码设定可以被任意用户访问和任意主机通过远程访问,所以需要进行安全设定(设置 MySQL 数据库管理员 (root) 密码
注意:上面的数据库管理员 (root)与 我们Linux 账号的 root 完全无关! 只是数据库管理软件内恰好有一个管理账号也是 root。
命令形式设置 MySQL root 密码
- mysqladmin -u root passwd 'your.passwd' # 设置管理账号密码
- myaql -u root -p # 测试密码登录
添加 MySQL 用户账号 —— 建立不同的用户管理不同的数据库
- myaql -u root -p
- create database [数据库名称] ;
- grant all privileges on [数据库名称] .* to vbirduser@localhost identified by '[新用户密码]' ;
- use mysql ;
- select * from user where user = 'vbirduser' ; # 在 mysql 中 查询系统有没有 vbirduser 这个账号
MySQL 数据库的基本管理
1 ) 查看
- SHOW DATABASES; # 查看 记录 MySQL 账号、主机等重要信息的主数据库
- USE mysql; # 进入mysql 数据库
- SHOW TABLES; # 显示当前所在 mysql 数据库中的所有的 表(tables)
- SELECT * FROM user; # #查询user中 所有数据
- SELECT Host,User,Password FROM user; # 查询user 中的 指定字段
2 ) 新建
- CREATE DATABASE westos; # 新建数据库
-
CREATE TABLE linux ( # 新建表
username varchar(6) not null,
password varchar(30) not null
);
-
DESC linux; # 显示表(linux)的结构
-
INSERT INTO linux VALUES ('user1','123'); # 在表(linux)中插入数据 'user1','123'
-
FLUSH PRIVILEGES; # 刷新数据库
3 ) 更改
-
ALTER TABLE redhat RENAME linux; # 重命名
-
ALTER TABLE linux ADD age varchar(4) AFTER password; # 添加结构内容(默认添加到表最后一行)
-
ALTER TABLE linux DROP age; # 删除表中 age 的相关数据内容
-
UPDATE linux SET sex='g' WHERE username='user2'; # 更改 设置表(linux)中的内容
4 )备份
- mysqldump -uroot -p123 --all-database # 备份所有数据库数据
- mysqldump -uroot -p123 --all-database --no-data # 备份所有数据库数据,除了date数据
- mysqldump -uroot -p123 westos
- mysqldump -uroot -p123 westos > /mnt/westos.sql # 将数据库westos数据备份到/mnt/westos.sql 文件
5 )删除
- DELETE from linux where username='user2' and age='18'; # 删除 从表(linux)中删除 user2' and age='18'数据
- DROP TABLE linux; # 删除 表 (linux)
- DROP DATABASE westos; # 删除 数据库 westos
6 )恢复
- mysql -uroot -p123 -e "create database westos;" # 创建数据库 westos
- mysql -uroot -p123 westos < /mnt/westos.sql # 用/mnt/westos.sql 备份文件数据 恢复 数据库 westos 的数据
MySQL 数据库密码管理
1 )更改当前账户密码
-
mysqladmin -uroot -plee password westos # 更改 账户(root)的密码由 原始密码 '123' 为 新密码 'westos'
2)MySQL root 密码遗忘的紧急处理
- systemctl stop mariadb # 关闭 mariadb
- mysqld_safe --skip-grant-tables & # 挽救模式 (& 后台运行)
- mysql # 挽救模式 - 无密码登陆 MySQL 数据库
UPDATE mysql.user set Password=password('lee') WHERE User='root'; # RHEL7 系统 修改 passwd
UPDATE mysql.user set authentication_string=password('lee') WHERE User='root' # RHEL8 系统 修改 authentication_string
flush privileges; # 刷新数据库数据
quit
- ps aux | grep mysql # 查看 mysql 相关进程
- kill -9 mysql的所有进程 # 结束 mysql 所有进程
- systemctl start mariadb # 重新 启动 mariadb
用户授权
CREATE USER lee@localhost identified by 'lee'; ##只能用localhost登陆 CREATE USER lee@% identified by '%'; ##可以通过网络或localhost 登陆
GRANT INSERT,SELECT ON westos.* TO lee@localhost;
SHOW GRANTS for lee@localhost;
REVOKE SELECT ON westos.* FROM lee@localhost;
DROP user lee@localhost;
数据库的图形管理
LAMP 平台 —— 一个是 Linux 操作系统上面,搭配 Apache + MySQL +PHP 等实现的系统提供用户互动接口的动态网站
LAMP 平台所需软件
- httpd (提供 Apache 主程序)
- mysql (MySQL 客户端程序)
- mysql-server (MySQL 服务器程序)
- php (PHP 主程序含给 Apache 使用的模块)
- php-dever (PHP 的发展工具)
- php-mysql (提供给 PHP 程序读取 MySQL 数据库的模块)
1 )安装数据库(MySQL)
- dnf search mariadb
- dnf install mariadb-server.x86_64 -y # 安装数据库
- vim /etc/my.cnf
[mysqld]
skip-networking=1 # 关闭数据库 开放端口
- systemctl start mariadb.service
- mysql_secure_installation # 数据库安全初始化设置
2 )安装 超文本传输协议服务—— Apache - httpd
- dnf install httpd -y
- systemctl enable --now httpd
- firefox http://172.25.254.10 # 测试 http 连接
3-1)phpMyAdmin 的安装
- mv /root/mnt/phpMyAdmin-3.4.0-all-languages.tar.bz2 /var/www/html/ # 将phpMyAdmin 的软件压缩包 放置在 /var/www/html/目录下
- tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 # 解压缩 到 /var/www/html/ #CentOS系统默认的 首页所在目录,当输入“http://localhost”时所显示的数据,即放在这个目录的首页文件(默认index.html)
/var/www/html/phpMyAdmin-3.4.0-all-languages # 生成文件目录
- mv /var/www/html/phpMyAdmin-3.4.0-all-languages /var/www/html/mysqladmin # 重命名 mysqladmin
- cd mysqladmin
- cp config.sample.inc.php config.inc.php
- vim config.inc.php
$cfg['blowfish_secret'] = 'ba17clec07d65003'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */ # 添加参数
- systemctl restart httpd
3-2 )安装 php-mysqlnd.x86_64
- dnf search php
php-mysqlnd.x86_64
- dnf install php-mysqlnd.x86_64 -y # 安装 php-mysqlnd.x86_64
测试
- firefox http://172.25.254.10/mysqladmin/