数据库:由表格组成(可以理解为高级excel)(功能:信息的存储)
yum install mariadb-server.x86_64 -y
systemctl start mariadb
mysql(就直接能进入数据库)
安装完不能直接使用,因为数据库没有密码,并且端口裸露在外面,需要做安全初始化
netstat -antlupe | grep mysql(查看端口)
1)关闭端口
rpm -qc mariadb-server(查看mysql所属文件)
##
在masql的段里写skip-networking=1(=1 开启)
##
systemctl restart mariadb.service(重启服务)
netstat -antlupe | grep mysql(再次查看,没有显示端口)
2)改密码
mysql_secure_installation给root密码
Remove anonymous users?关闭匿名用户连接
Disallow root login remotely?关闭远程root用户连接
Remove test database and access to it? 移除测试数据库
Reload privilege tables now?重新加载数据库配置
##一顿操作之后就设置好密码了##(以上全选yes)
mysql -uroot -p(用这样的方式登陆,也可以在-p后面直接加密码,但是是明文的所以一般不这么操作)
进来之后,用大写,显得比较专业,必须分号结尾,而且这里Tab键不能补齐。
在数据库中的一些指令
show databases; 显示数据库
use mysql; 进入数据库
show tables; 显示数据库中的表
desc user; 查看user表的数据结构
flush privileges; 刷新数据库信息
select host,user,password from user; 查询user表中的host,user,password字段
应用一下
CREATE DATABASE westos; 创建westos数据库
SHOW DATABASES; 查看数据库
USE westos; 进入westos数据库
username varchar(15) not null, (not null:不能为空值,最大输入字符为15个汉字)
password varchar(15) not null
);
SHOW TABLES; 显示数据库中的表
DESC linux; 查看linux表中的数据结构
INSERT INTO linux VALUES ('lee','123'); 在linux表中加入两个字段对应的数据分别为lee和123
INSERT INTO linux VALUES ('lee1','456');同样的加入数据了lee1和456SELECT username,password FROM linux; 查询在linux表中的指定字段
SELECT * FROM linux; 查询在linux表中的所有字段
更改:
ALTER TABLE linux ADD class varchar(20); 在linux表中加入class字段
ALTER TABLE linux ADD age varchar(20) AFTER password; 在password后加入age字段
UPDATE linux SET password='789' WHERE username='lee1'; 给linux表中lee1的那行的password中的数据改成789
删除:
DELETE FROM linux WHERE username='lee1'AND password='789';删除数据lee1(为了防止重名,所以又加了一个789来限定)
DROP TABLE redhat; 删除redhat表
用户授权
mysql -uroot -p 先以root身份进入mysqlCREATE USER lee@'localhost' identified by 'westos'; 创建一个名字叫lee的用户,密码为westos
USE mysql;
SELECT User,Password FROM user; 查看建立的用户信息(有lee)
SHOW DATABASES; 查看数据库,无法查看
切换到超级用户
GRANT SELECT,INSERT on westos.* TO lee@localhost; 给lee用户在访问westos库下的所有表时都有访问权限(SELECT)和插入权限(INSERT)
SHOW GRANTS FOR lee@localhost; 查看lee权限
REVOKE INSERT ON westos.* FROM lee@localhost; 删除lee在westos库下的所有表的插入权限切换到lee,果然插入不了。
忘记本地用户密码:
select User,Password from user; 查看建立的用户信息update mysql.user set Password=password('hello') where User='lee'; 更改密码,password()为密文显示,否则查看时(select User,Password from user;)会显示设置的密码明文
systemctl restart mariadb.service
成功
忘记超级用户密码:
systemctl stop mariadb(关闭数据库)mysql(进不去)
需要启动mysql安全模式
mysqld_safe --skip-grant-tables &//启动mysql时不开启授权表这样就进入安全模式了
mysql(进去了)
update mysql.user set Password=password('redhat') where User='root';(给root一个新密码redhat)
ps aux | grep mysql(查看mysql的进程id)
kill -9 2440(结束所有mysql进程)
ps aux | grep mysql(看一眼,没有和mysql相关的进程了)
systemctl start mariadb
然后用root登陆,成功
备份一个库:
先建立一个库
然后用到备份命令
mysqldump -uroot -predhat westos > /mnt/westos.sql ##把westos库备份到/mnt/westos.sql中mysqldump -uroot -predhat westos --no-data > /mnt/westos.sql ##把westos库的格式备份(不带数据)
mysqldump -uroot -predhat --all-database > /mnt/westos.sql ##把所有库备份
mysqldump -uroot -predhat --all-database --no-data > /mnt/westos.sql ##把所有的库只备份格式
PS:保存在文件中,规范化--->后缀写为.sql(后缀什么都无所谓)
然后删掉原来的库
DROP DATABASE westos;
恢复方式1
mysql -uroot -predhat -e "CREATE DATABASE westos;"
mysql -uroot -predhat westos < /mnt/westos.sql
恢复方式2
vim /mnt/westos.sql()
##
CREATE DATABASE westos;
USE westos;
##
mysql -uroot -predhat < /mnt/westos.sql(导入数据库)
mysql -uroot -predhat
在浏览器中用用图形界面控制数据库
1)下载phpMyAdmin-3.4.0-all-languages.tar.bz2(lftp 172.25.254.250 然后get下来)2)yum install php -y ##安装php
3)yum install php-mysql -y ##安装mysql的php图形界面
4)systemctl restart httpd
5)tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2 -C /var/www/html/ ##解压(-C表示解压到目录中)
6)cd /var/www/html ls
7)mv phpMyAdmin-3.4.0-all-languages mysqladmin
8)cd mysqladmin/
9)cp config.sample.inc.php config.inc.php
10)关掉火墙
测试:访问http://172.25.254.120/mysqladmin
成功