Mysql数据库和Linux系统常用命令分享
Linux服务器瘫痪了3天,居然又是Mysql调皮捣蛋,让IDC重启服务器后发现Mysql启动失败,反复重启机器和Mysql均无效,顿时心口发凉,真 是世风日下、民不聊生、暗无天日啊,刚回北京就不让我消停。可算找到原因了,居然是Mysql莫名其妙多了一些超大文件,160G的硬盘空间被占用的满满的,根本已经跑不动,这服务器已发生了太多离奇之事,我已见怪不怪、坦然处之。
只得开始手工清除垃圾文件的漫长之路,正好也借这个机会把Mysql好好规整一下,删除过期不用的数据库、回收闲置的帐户权限,力争安全稳定可靠持久的运行下去。这个动作还不小,由于phpmyadmin下没有发现 PHP 的扩展设置mbstring, 当前系统好像在使用宽字符集。没有 mbstring 扩展的 phpMyAdmin 不能正确识别字符串,结果phpmyadmin无法对数据库帐户进行管理,只得使用命令行来解决这个问题;这就需要了解一些Mysql常用的命令,比如: 显示/打开数据库、应用表、显示表字段以及基本的添加/删除/更新字段的命令,我整理了下分享给大家:
1:使用SHOW语句找出在服务器上当前存在什么数据库:
mysql> SHOW DATABASES;
2:创建一个数据库MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
3:选择你所创建的数据库
mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
4:查看现在的数据库中存在什么表
mysql> SHOW TABLES;
5:创建一个数据库表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:显示表的结构:
mysql> DESCRIBE MYTABLE;
7:往表中加入记录
mysql> insert into MYTABLE values ("hyq","M");
8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
9:导入.sql文件命令(例如D:/mysql.sql)
mysql> use database;
mysql> source d:/mysql.sql;
10:删除表
mysql> drop TABLE MYTABLE;
11:清空表
mysql> delete from MYTABLE;
12:更新表中数据
mysql> update MYTABLE set sex="f" where name=hyq;
此外,Linux下经常使用的命令:
1:导入数据库备份文件的方法:
root: mysql –u数据库帐户 –p密码 数据库名 < .sql备份文件
2:MySql的用户管理是通过User表来实现的,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应的权限;二是通过GRANT命令创建具有某种权限的用户。其中GRANT的常用用法如下:
mysql> grant all privileges on 用户名.* to 数据库名@localhost identified by “密码”;
3:清空文件内容:
cat /dev/null > 文件名
4:添加帐户:
useradd 用户名 –d 目录名 –s /sbin/nologin(不允许该用户直接登录服务器)
5:设置帐户密码
passwd 用户名
特别注意:
刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、 root帐户设置密码,可用如下命令进行:
use mysql;
delete from User where User="";
update User set Password=PASSWORD(newpassword) where User=root;