一、MySQL 数据库的基本安装

# yum 安装 mysql 版本:5.1.73
[root@mysql ~]# yum install -y mysql-server mysql # 启动 MySQL 数据库
[root@mysql ~]# service mysqld start

二、更改 Mysql 数据库 root 密码

1. 当前 MySQL 没有 root 密码:

如果当前 root 账户没有设置密码,则要修改root密码为:abcdef

[root@mysql ~]# mysqladmin -u root password "abcdef"

2. 当前 MySQL 存在 root 密码

如果当前 root 账户已经设置了密码(abcdef), 要修改密码为:123456

[root@mysql ~]# mysqladmin -u root -p password ""

根据提示,输入之前的旧密码 "abcdef"

3. 忘记 root 密码

1) 编辑 mysql 主配置文件 vim /etc/my.cnf
   在[mysqld]字段下添加参数 skip-grant
2) 重启数据库服务 service mysqld restart
3) 这样就可以进入数据库不用授权了 mysql -uroot
4) 修改相应用户密码 use mysql;

mysql> update user set password=password('your password') where user='root';
mysql> flush privileges;

5) 修改 /etc/my.cnf 去掉 skip-grant , 重启 mysql 服务

三、MySQL 用户设置

MySQL 安装后默认有一个 root 用户,可以添加其它用户,MySQL 有多种添加用户的方式。

1. 通过 user 表来添加设置用户

以下为添加用户的的实例,用户名为guest,密码为guest123,并授权用户可进行 select, insert 和 update 操作权限。

[root@mysql ~]# mysql -uroot -p
Enter password: ******
mysql> use mysql;
Database changed mysql> insert into user (host, user, password, select_priv, insert_priv, update_priv)
-> values ('localhost', 'guest', password('guest123'), 'Y', 'Y', 'Y');
Query OK, 1 row affected, 3 warnings (0.00 sec) mysql> flush privileges; # 重新载入授权表
Query OK, 0 rows affected (0.00 sec) mysql> select host, user, password from user where user = 'guest';
+-----------+-------+-------------------------------------------+
| host | user | password |
+-----------+-------+-------------------------------------------+
| localhost | guest | *F1573429579994EEA4459170FDAC55DF96C4BBE6 |
+-----------+-------+-------------------------------------------+
1 row in set (0.00 sec)

在添加用户时,请注意使用 MySQL 提供的 password() 函数来对密码进行加密。

2. 通过 grant 命令来添加设置用户

另外一种添加用户的方法为通过SQL的 grant 命令,你下命令会给指定数据库 test 添加用户 guest 密码为 guest123

[root@mysql ~]# mysql -u root -p
Enter password: ******
mysql> use test; # 貌似不切换到 test 数据库也是可以的。
Database changed
mysql> grant select, insert, update, delete, create, drop on test.* to 'guest'@'localhost' identified by 'guest123';
Query OK, 0 rows affected (0.00 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

四、连接数据库

1. 使用 mysql 客户端命令进行连接

[root@localhost ~]# mysql -uroot -h 172.16.1.22 -P3306 -piweb_xxx_mysql

2. 使用 C 语言代码进行连接

待更新。。。

3. 使用 Python 语言代码进行连接

待更新。。。

五、一些基本的 MySQL 操作命令

1. 查看当前数据库版本

mysql> select version();
+-----------+
| version() |
+-----------+
| 5.1.73 |
+-----------+
1 row in set (0.01 sec)

2. 创建一个数据库

mysql> create database liwei;
Query OK, 1 row affected (0.00 sec)
[root@mysql ~]# mysqladmin -u root -p create liwei
Enter password:******

3. 删除一个数据库

mysql> drop database liwei;
Query OK, 0 rows affected (0.02 sec)
[root@mysql ~]# mysqladmin -u root -p drop liwei
Enter password:******

4. 查看系统有哪些库

mysql> show databases;

5. 切换到某个数据库

mysql> use test;
Database changed

6. 查看当前使用的库

mysql> select database();
+------------+
| database() |
+------------+
| test |
+------------+

7. 查看当前用户

mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+

8. 查看当前库有哪些表 table

mysql> show tables;
Empty set (0.00 sec)

9. 查看表的全部字段

mysql> desc func;
+-------+------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------------------+------+-----+---------+-------+
| name | char(64) | NO | PRI | | |
| ret | tinyint(1) | NO | | 0 | |
| dl | char(128) | NO | | | |
| type | enum('function','aggregate') | NO | | NULL | |
+-------+------------------------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

# 也可以使用这一条命令,显示比这个更详细,而且可以把建表语句全部列出来

待更新。。。

10. 创建一个新表

mysql> use test;
Database changed
mysql> create table t1 (`id` int(4), `name` char(40));
Query OK, 0 rows affected (0.01 sec)

11. 查看当前 MySQL 状态

mysql> show status;

12. 查看 MySQL 参数

mysql> show variables;

其中很多参数是可以在/etc/my.cnf中定义的,并且有部分参数是可以在线编辑的。

13. 修改 MySQL 的参数

mysql> show variables like 'max_connect%'
mysql> set global max_connect_errors = 1000;
mysql> show variables like 'max_connect_errors';

在 MySQL 命令行,"%" 类似于 shell 下的 * 表示万能匹配。使用 "set global" 可以临时修改某些参数,但是重启 mysqld 服务后还会变为原来的,所以要想恒久生效,需要在配置文件 my.cnf 中定义。

14. 查看当前 MySQL 服务器的队列

mysql> show processlist;

在日常工作中使用最为频繁,使用它可以查看 MySQL 在干什么,可以发现是否有锁表。

15. 创建一个普通用户并授权

mysql> grant all on *.* to user1 identified by '';

all 表示所有的权限(读、写、查询、删除等操作),*.*前面的 * 表示所有的数据库,后面的 * 表示所有的表,identified by 后面跟密码,用个单引号括起来。这里的 user1 指的是 localhost 上的 user1,如果是给网络上其他机器上的某个用户授权则这样:

mysql> grant all on db1.* to 'user2'@'172.16.1.22' identified by '';

用户和主机的 IP 之间有一个@,另外主机 IP 那里可以用 % 替代,表示所有主机,例如:

mysql> grant all on db1.* to 'user3'@'%' identified by '';

五、一些常用的 SQL

1. 查询语句

mysql> select count(*) from mysql.user;
# mysql.user表示mysql库的user表;count(*)表示表中共有多少行。
mysql> select * from mysql.db;
# 这个用来表示查询mysql库的db表中的所有数据,也可以查询单个字段或者多个字段:
mysql> select db from mysql.db;
mysql> select db,user from mysql.db;
# 同样,在查询语句中可以使用万能匹配"%"
mysql> select * from mysql.db where host like '10.0.%';

2. 插入一行

mysql> insert into db1.t1 values (1, 'abc');

3. 更改表的某一行

mysql> update db1.t1 set name='aaa' where id=1;
mysql> select * from db1.t1;

4. 清空表数据

mysql> truncate table db1.t1;
mysql> select count(*) from db1.t1;

5. 删除表

mysql> drop table db1.t1;

6. 删除数据库

mysql> drop database db1;

六、MySQL 数据库的备份与恢复

1. 备份

mysqldump -uroot -p'iweb_xxxx_mysql' mysql > /tmp/mysql.sql

使用mysqldump命令备份数据库,"mysql"指的是数据库名,然后重定向到一个文本文档里。可以查看/tmp/mysql.sql文件内容。

2. 恢复

mysql -uroot -p'iweb_xxxx_mysql' mysql < /tmp/mysql.sql

---------- 本文结束 ----------

学会使用简单的 MySQL 常用操作的更多相关文章

  1. 学会使用简单的MySQL操作

    第十八章 学会使用简单的MySQL操作 在前面两个章节中已经介绍过MySQL的安装了.可是光会安装还不够.还须要会一些主要的相关操作.当然了,关于MySQL的内容也是非常多的.仅仅只是对于linux系 ...

  2. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  3. MySQL常用操作总结

    MySQL常用操作 前提条件:已安装MySQL. 学习目标:用一条sql语句写出A和B的剩余数量 AA表 BB表 以上为一道面试题,接下来由这道面试题来回顾一些数据库的基本操作. 登录MySQL su ...

  4. centos LAMP第四部分mysql操作 忘记root密码 skip-innodb 配置慢查询日志 mysql常用操作 mysql常用操作 mysql备份与恢复 第二十二节课

    centos  LAMP第四部分mysql操作  忘记root密码  skip-innodb 配置慢查询日志 mysql常用操作  mysql常用操作 mysql备份与恢复   第二十二节课 mysq ...

  5. Windows平台下MySQL常用操作与命令

    Windows平台下MySQL常用操作与命令 Windows平台下MySQL常用操作与命令,学习mysql的朋友可以参考下. 1.导出整个数据库 mysqldump -u 用户名 -p --defau ...

  6. MySQL常用操作2

    MySQL常用操作2 判断函数 IF(expr, value1, value2)  --  如果表达式expr为true,则返回value1,否则返回value2 IFNULL(value1, val ...

  7. Linux 笔记 - 第十五章 MySQL 常用操作和 phpMyAdmin

    博客地址:http://www.moonxy.com 一.前言 前面几章介绍了 MySQL 的安装和简单的配置,只会这些还不够,作为 Linux 系统管理员,我们还需要掌握一些基本的操作,以满足日常管 ...

  8. MYSQL常用操作函数的封装

    1.mysql常用函数封装文件:mysql.func.php <?php /** * 连接MYSQL函数 * @param string $host * @param string $usern ...

  9. 第二篇 Mysql常用操作记录(转载)

    我们在创建网站的时候,一般需要用到数据库.考虑到安全性,建议使用非root用户.常用命令如下: 1.新建用户 //登录MYSQL@>mysql -u root -p@>密码//创建用户my ...

随机推荐

  1. jquery常见知识点 总结

    1. jquery特点 2. jquery中css选择器用法 jQuery使用了一套css选择器,共有5种,即标签选择器,ID选择器,类选择器,通用选择器和群组选择器,现分述如下:   标签选择器 用 ...

  2. 深入浅出Java多线程

    Java给多线程编程提供了内置的支持.一个多线程程序包含两个或多个能并发运行的部分.程序的每一部分都称作一个线程,并且每个线程定义了一个独立的执行路径. 多线程是多任务的一种特别的形式,但多线程使用了 ...

  3. Verilog学习笔记设计和验证篇(四)...............状态机的置位与复位

    1)状态机的异步置位和复位 异步置位与复位是于时钟无关的.当异步置位或复位信号来临时,他们立即分别置触发器的输出为1或0,不需要等待时钟沿的到来.要将他们列入always块的事件控制信号内就能触发al ...

  4. Lucene.net站内搜索—2、Lucene.Net简介和分词

    目录 Lucene.net站内搜索—1.SEO优化 Lucene.net站内搜索—2.Lucene.Net简介和分词Lucene.net站内搜索—3.最简单搜索引擎代码Lucene.net站内搜索—4 ...

  5. velocity-tools-beta1.jar与velocity-tools.jar不兼容

    今天在升级了某些依赖jar的版本启动一项目后,velocity中的有些定义在common.vm中变量居然变成了null,没能include进来导致,而没升级的环境是ok的,经过反查,最后发现是将vel ...

  6. sql2012还原sql2008备份文件语句

    --sql2012还原sql2008语句 --选择master数据库,新建查询 输入下面sql语句 --选择兼容模式(sql 2008)创建数据库db RESTORE DATABASE db FROM ...

  7. 重新初始化 VS2010

    开始->所有程序->Microsoft Visual Stdio 2005->Visual Stdio Tools->Visual Stdio 2005 命令提示 这时会弹出一 ...

  8. 经典案例:那些让人赞不绝口的创新 HTML5 网站

    在过去的10年里,网页设计师使用 Flash.JavaScript 或其他复杂的软件和技术来创建网站.但现在你可以前所未有的快速.轻松地设计或创造互动的.有趣好看的网站.如何创建?答案是 HTML5 ...

  9. visual studio 查找/替换对话框

    工具--选项--环境--查找和替换 如下设置: 则会在查找.替换到最后时会弹出提示,比如“查找到达了搜索的起点”,如下图: 原文:http://keleyi.com/a/bjac/27iswh0p.h ...

  10. Javascript Object、Function对象

    1.Object对象 原型对象 原型是对象的一个属性,也就是prototype属性,每个对象都有这个内部属性,而且他本身也是一个对象. <script type="text/javas ...