文章是之前总结的,还不是很完善。对于新手来说也许有一些帮助吧。

文章难免会出现一些错误,请大家指出。

Mysql 忘记root密码

在/etc/my.cfg [mysqld]下面添加

skip-grant-tables

或是

skip-grant

重启MySQL

use mysql;

UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ;

mysql flush privileges;

将my.cfg文件修改回来 ,重启MySQL即可。

二、在启动Mysql服务器时加上参数--skip-grant-tables来跳过授权表的验证

(./safe_mysqld --skip-grant-tables &),这样我们就可以直接登陆Mysql服务器,

然后再修改root用户的口令,重启Mysql就可以用新口令登陆了。

添加环境变量

PATH=$PATH:/usr/local/mysql/bin  加入到/etc/profile中

只需本机使用Mysql服务

在启动时还可以加上--skip-networking参数使Mysql不监听任何TCP/IP连接

(./safe_mysqld --skip-networking &),增加安全性。(非常推荐)

查看支持的存储引擎

mysql> show engines;

+------------+---------+------------------------------------------------------------+--------------+------+------------+

| Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |

+------------+---------+------------------------------------------------------------+--------------+------+------------+

| MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |

| CSV        | YES     | CSV storage engine                                         | NO           | NO   | NO         |

| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance    | NO           | NO   | NO         |

| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |

| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables  | NO           | NO   | NO         |

+------------+---------+------------------------------------------------------------+--------------+------+------------

查看当前MySQL的默认数据引擎

show variables like '%engine%';

mysql> show variables like '%engine%';

+---------------------------+--------+

| Variable_name             | Value  |

+---------------------------+--------+

| engine_condition_pushdown | ON     |

| storage_engine            | MyISAM |

+---------------------------+--------+

2 rows in set (0.00 sec)

查看和修改最大连接数

使用MySQL 数据库的站点,当访问连接数过多时,就会出现 "Too many connections" 的错误。

出现这种错误有两种情况,一种是网站访问量实在太大,服务器已经负担不起,此时就应该考虑负载均衡或者其它减少服务器压力的办法。另一种情况就是 MySQL 的最大连接数设置得太小,当访问量稍大就出现连接过多的错误。

show variables like '%max_connections%';

要对 mysql 的最大连接数进行修改,只需要在 my.cnf 配置文件里面修改 max_connections 的值,然后重启 mysql 就行。

如果 my.ini 文件中没有找到 max_connections 条目,可自行添加以下条目。

max_connections = 220

或是

mysql>set global max_user_connections = 200; [仅本次修改有效]

实时查看mysql当前连接数

前提:对用户和远程主机有授权

mysql> grant all on *.* to root@192.168.9.9 identified by 'ocean@mx';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

[root@OceanV ~]# mysqladmin -uroot -p -h192.168.9.9  processlist

Enter password:

+----+------+-------------------+----+---------+------+-------+------------------+

| Id | User | Host              | db | Command | Time | State | Info             |

+----+------+-------------------+----+---------+------+-------+------------------+

| 41 | root | localhost         |    | Sleep   | 13   |       |                  |

| 56 | root | 192.168.9.9:45422 |    | Query   | 0    |       | show processlist |

+----+------+-------------------+----+---------+------+-------+------------------+

只查看当前连接数(Threads就是连接数)

[root@OceanV ~]# mysqladmin -uroot -pocean@mx status

Uptime: 4449  Threads: 2  Questions: 18697  Slow queries: 0  Opens: 77  Flush tables: 1  Open tables: 31  Queries per second avg: 4.202

或是 show full processlist;

mysql> show full processlist;

+----+------+-----------+-------+---------+------+-------+-----------------------+

| Id | User | Host      | db    | Command | Time | State | Info                  |

+----+------+-----------+-------+---------+------+-------+-----------------------+

| 41 | root | localhost | NULL  | Query   |    0 | NULL  | show full processlist |

| 65 | root | localhost | cacti | Sleep   |    4 |       | NULL                  |

| 68 | root | localhost | NULL  | Sleep   |   27 |       | NULL                  |

+----+------+-----------+-------+---------+------+-------+-----------------------+

3 rows in set (0.00 sec)

看一下所有连接进程,注意查看进程等待时间以及所处状态 是否locked

如果进程过多,就把进程打印下来,然后查看.

mysql -e 'show full processlist;' -p > 111

查找非locked的进程,一般就是当前执行中卡死,导致后面的进程排队的原因。

查看MySQL连接数和当前用户Mysql连接数

先用管理员身份进入mysql提示符。

mysql -uroot -pxxxx

mysql >show processlist;         #可以显示前100条连接信息

show full processlist;    #可以显示全部。随便说下,如果用普通账号登录,就只显示这用户的。

修改MySQL监听端口

1.如果你安装的是系统自带的rpm包的情况:

修改 /etc/my.cnf

[mysqld]

datadir=/var/lib/mysql

port=3300                    #修改成你自己想要的端口

socket=/var/lib/mysql/mysql.sock

[mysql.server]

user=mysql

basedir=/var/lib

[safe_mysqld]

err-log=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

保存退出。

2.如果你安装的是其他源码包或者在同一服务器上安装多个mysqld服务的情况:

同样的配置,找出my.cnf 文件。添加port= 端口号

需要注意的是

[client]

port            = 3300

这里也要改一下。

在同一台机器上配置两个MySQL服务(跑两个端口)

cd /usr/local/; cp -r mysql mysql_2; cd mysql_2;

初始化mysql2: ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql2

拷贝配置文件:cp /etc/my.cnf ./my.cnf

修改配置文件相关参数:vim my.cnf  #更改port 以及 socket

启动:/usr/local/mysql_2/bin/mysqld_safe --defaults-file=/usr/local/mysql_2/my.cnf --user=mysql &

若开机启动它,需加入到 /etc/rc.local中

查看mysql设置参数

$mysqladmin  -u root -p variables;

查询参数

1) \g  在语句尾,同;

2) \G  在语句尾,使查询结果以竖形输出

3) \c  在语句尾,使当前语句不执行

清屏

\! clear

切换mysql命令结尾符

dlimeter 特殊符;

查看当前版本和当前日期

此命令要求mysql服务器告诉你它的版本号和当前日期

mysql select version(),current_date();

+-------------------------------+----------------+

| version()                     | current_date() |

+-------------------------------+----------------+

| 4.1.7Boco_DC_Group_2004-11-24 | 2008-06-18     |

+-------------------------------+----------------+

1 row in set (0.00 sec)

当前是哪个用户

select user();

查看mysql状态

show status;

修改mysql参数

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

查看mysql队列 show processlist;

查看mysql是否在监听端口命令

netstat -tl | grep mysql

开启服务器

$/etc/rc.d/init.d/mysqld start

$mysqld_safe  --user=mysql &

停止服务器

$/etc/rc.d/init.d/mysqld stop

$mysqladmin  shutdown  -u root -p

/usr/bin/mysqladmin -u root -p shutdown

赋权

mysqlgrant all on dbname.* to username@ identified by 'localhostpassword'

刷新权限表  mysqlflush privileges;

优化表

mysqloptimize  table  tblA,tblB;

或 [进行优化并检查修复任务]

$mysqlcheck  -o  dbname  tblA tblB  tblC   -u root  -p

对表进行分析

mysqlanalyze  table  tblA;

$mysqlcheck  -a dbname [tblA  tblB tblC ] -u root -p

对表进行检查

mysqlcheck table tblA,tblB,tblC;

连接服务器

mysql -u   cnscn

-h   192.168.0.1

[-D  dbname]

[-P  3306]

[--protocol=name]    The protocol of connection (tcp,socket,pipe,memory)

[-S, --socket=name]  连接所用的套接字文件

[--character-sets-dir=name]  字符集所位于的目录

[--default-character-set=name]   默认的字符集

[-E, --vertical]  垂直地打列出查询输出

从命令行登录MySQL数据库服务器

1.登录使用默认3306端口的MySQL

/usr/local/mysql/bin/mysql -u root -p

2.通过TCP连接管理不同端口的多个MySQL(注意:MySQL4.1以上版本才有此项功能)

/usr/local/mysql/bin/mysql -u root -p --protocol=tcp --host=localhost --port=3307

3.通过socket套接字管理不同端口的多个MySQL

/usr/local/mysql/bin/mysql -u root -p --socket=/tmp/mysql3307.sock

4.通过端口和IP管理不同端口的多个MySQL

/usr/local/mysql/bin/mysql -u root -p -P 3306 -h 127.0.0.1

退出mysql命令:

exit(回车) 提示“bye”

修改登录密码

MySQL默认没有密码,安装完毕增加密码的重要性是不言而喻的。

usr/bin/mysqladmin -u root password 'new-password'

格式:mysqladmin -u用户名 -p旧密码 password 新密码

创建数据库

Mysql>create database dbname;

显示数据库列表

mysql>show databases;

显示数据表列表

mysql>show tables;

显示数据表的结构

describe 表名;

desc tablesname;

显示表的创建信息

show create table tablesname;

创建名称为ocean的数据库

CREATE DATABASE ocean;

DROP tables tablesname;

将表中记录清空

delete from tablesname;

建表

use 库名;create table 表名(字段设定列表);

删除名称为ocean的数据库

DROP DATABASE ocean;

选择ocean数据库

USE ocean;

(USE 和 QUIT 命令不需要分号结束。)

常用sql命令

查询 select count(*) from mysql.user; select * from mysql.db; select * from mysql.db where host like '10.0.%';

插入 update db1.t1 set name='aaa' where id=1;

清空表 truncate table db1.t1;

删除表 drop table db1.t1;

删除数据库 drop database db1;

修复表 repair table tb1 [use frm];

表操作SQL语句

1、显示当前数据库中存在什么表

SHOW TABLES;

2、创建数据库表zhangyan

在mysql后粘贴以下SQL语句,存储引擎为MYISAM,字段id为主键、唯一索引

CREATE TABLE `zhangyan` ( `id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT , `username` VARCHAR( 20 ) NOT NULL , `password` CHAR( 32 ) NOT NULL , `time` DATETIME NOT NULL , `number` FLOAT( 10 ) NOT NULL , `content` TEXT NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM ;

3、查看zhangyan表结构

DESCRIBE zhangyan;

4、从表中检索信息

4.1、从zhangyan表中检索所有记录

SELECT * FROM zhangyan;

4.2、从zhangyan表中检索特定的行:字段username等于abc,字段number等于1,按字段id降序排列

SELECT * FROM zhangyan WHERE username = abc AND number=1 ORDER BY id DESC;

4.3、从zhangyan表中检索指定的字段:username和password

SELECT username, password FROM zhangyan;

4.4、从zhangyan表中检索出唯一的不重复记录

SELECT DISTINCT username FROM zhangyan;

5、插入信息到zhangyan表

INSERT INTO zhangyan (id, username, password, time, number, content) VALUES (, abc, 123456,

2007-08-06 14:32:12, 23.41, hello world);

6、更新zhangyan表中的指定信息

UPDATE zhangyan SET content = hello china WHERE username = abc;

7、删除zhangyan表中的指定信息

DELETE FROM zhangyan WHERE id = 1;

8、清空zhangyan表

DELETE FROM zhangyan;

9、删除zhangyan表

DROP TABLE zhangyan;

10、更改表结构,将zhangyan表username字段的字段类型改为CHAR(25)

ALTER TABLE zhangyan CHANGE username username CHAR(25);

11、将当前目录下的mysql.sql导入数据库

SOURCE ./mysql.sql;

12、MySQL中将字符串aaa批量替换为bbb的SQL语句

UPDATE表名SET字段名=REPLACE(字段名,aaa,bbb);

13、修复损坏的表

用root帐号从命令行登录MySQL:

mysql-uroot-p

选定数据库名(本例中的数据库名为student):use  student;

修复损坏的表(本例中要修复的表为smis_user_student):  repair tables mis_user_student;udent;

一个建库和建表以及插入数据的实例

drop database if exists school; //如果存在SCHOOL则删除

create database school; //建立库SCHOOL

use school; //打开库SCHOOL

create table subject //建立表

(

id int(3) auto_increment not null primary key,

name char(10) not null

); //建表结束

//以下为插入字段

insert into subject(name) values('语文');

insert into subject(name) values('数学');

insert into subject(name) values('英语');

create table student //建立表

(

id int(4) auto_increment not null primary key;

no char(4) not null,

name char(10) not null,

); //建表结束

//以下为插入字段

insert into student(no,name) values('0001','张三');

insert into student(no,name) values('0002','李四');

create table grade //建立表

(

student_no char(4) not null,

subject_id int(3) not null,

score int(3) not null default 0 null,

primary key(student_no,subject_id);

); //建表结束

我们这里建立的grade表student_no参考student的no字段,subject_id参考subject的id字段 它们存在约束关系,

我们给grade表添加两个外键:

subject_id字段:

alter table grade add foreign key(subject_id) refrences subject(id) on delete cascade on update cascade;

student_no字段:

alter table grade add foreign key(student_no) refrences student(no) on delete cascade on update cascade;

这个时候会报错,因为我们没有把student表中的no设为索引,前一句没有问题是因为subject的id是主键,已经是索引了

我们给student的no添加索引

alter table student add index(no);

然后我们再

alter table grade add foreign key(student_no) refrences student(no);

这样就OK了

其他一些操作:

添加主键: alter table 表名 add primary key(列名)

删除主键: alter table 表名 drop primary key;

给某列改名: alter table 表名 change 列名 属性列表 比如alter table student change id no char(4)

添加某列:

1 在表的最前面添加列 比如给student表添加id属性 放在表的最前面

alter table student add id int(4) not null auto_increment primary key first;

2 在表的某个列后加列 比如给student表添加id属性 放在列no的最前面

alter table student add a int(11) afer no;

删除某列: alter table 表名 drop column 列名;

更改某列属性 比如修改student no字段属性 alter table student modify no char(4);

添加索引:alter table 表名 add index 列名

删除索引:alter table 表名 drop index 列名

删除外键:alter table 表名 drop foreign key 约束名

limit的使用:

select * from 表名 limit 2;//如果只给定一个参数,它表示返回最大的记录行数目

select * from 表名 limit 1,3;// 第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目

更改MySQL目录

MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:

1、home

目录下建立data目录

cd /home

mkdir data

2、把MySQL服务进程停掉:

mysqladmin -u root -p shutdown

3、把/var/lib/mysql整个目录移到/home/data

mv /var/lib/mysql /home/data/

这样就把MySQL的数据文件移动到了/home/data/mysql下

4、找到my.cnf配置文件

如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:

[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

5、编辑MySQL的配置文件/etc/my.cnf

为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。 修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。

操作如下:

vi  my.cnf

# The MySQL server

[mysqld]

port   = 3306

#socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用#注释此行)

socket  = /home/data/mysql/mysql.sock   (加上此行)

6、修改MySQL启动脚本/etc/rc.d/init.d/mysql

最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。

[root@test1 etc]# vi /etc/rc.d/init.d/mysql

#datadir=/var/lib/mysql    (注释此行)

datadir=/home/data/mysql   (加上此行)

7、重新启动MySQL服务

/etc/rc.d/init.d/mysql start

如果工作正常移动就成功了,否则对照前面的7步再检查一下。

mysql常用汉字库_MYSQL 常用总结【基础】相关推荐

  1. mysql基本命令总结_mysql 常用基本命令总结

    mysql 常用基本命令1.登录 MySQL服务器 mysql –h ip地址:端口(如果是3306可以省略) –u mysql用户名 -p mysql -h localhost:3306 -u ro ...

  2. go mysql 查询数据_MySQL常用语句之查询数据-Go语言中文社区

    简单查询: select [distinct] *| {字段名1,字段名2,字段名3, ...} from 表名 [where 条件表达式1] [group by 字段名 [having 条件表达式2 ...

  3. mysql 命令手册_MySQL 常用命令手册

    点击上方SQL数据库开发,关注获取SQL视频教程 常用功能命令1.导出整个数据库1mysqldump -u 用户名 -p –default-character-set=latin1 数据库名 > ...

  4. mysql员工脚本_mySQL常用脚本汇总

    @ mysql的常用脚本有哪些呢?我们来做个总结 建表语句 sql语句最后指定主键 DROP TABLE IF EXISTS `user_info1`; CREATE TABLE `user_info ...

  5. mysql命令教学_mysql常用命令有什么

    mysql常用命令有:1."create database name;":2."use databasename;":3."drop database ...

  6. mysql巡检常用命令_mysql 常用命令

    http://blog.chinaacc.com/garfiled606/blog/20100119-1909060539272.html客户端连接: 进入命令行,windows cmd,连接: my ...

  7. mysql php状态函数_mysql常用的信息函数

    ---- //常用的信息函数 SELECT VERSION();            -- -- //显示数据库的版本 SELECT DATABASE();            -- -- -- ...

  8. mysql去重汇总_Mysql常用SQL汇总

    今天的博客主题 数据库篇 -->Mysql -->Mysql常用SQL汇总 目录 字段合并去重 查询结果追加自定义字符串 查询当天的数据 字段合并去重 今天工作当中被同事问道数据库需要两个 ...

  9. mysql ping命令_MySQL常用命令总结

    MySQL常用命令总结 1.使用SHOW语句找出在服务器上当前存在什么数据库 mysql> show databases; 2.创建一个数据库MYSQLDATA mysql> create ...

最新文章

  1. 解读电感和电容在交流电路中的作用
  2. 读书笔记《单核工作法》_4原理4,5
  3. html中 一条样式规则,css规则的基本格式是什么?
  4. 用java设计一个二叉树类的结构,在JAVA中实现的二叉树结构
  5. 商汤OCR文本检测+识别开源(FOTS),TF实现NBA记分牌识别
  6. java中值滤波_Java实现图像中值滤波
  7. python小区管理系统设计_小区物业管理系统设计与实现
  8. 全网最全-Java简历优化-专业技能
  9. 18-移动端等比例缩放rem
  10. 1g等于多少mb计算机网络,1g等于多少mb 硬盘容量详细介绍
  11. 阿里ECS云服务器买来之后必做的几个操作
  12. 未来,谁在革通信设备商的命?
  13. eclipes 快捷键操作:
  14. yii2.0域名目录绑定(二级域名)以及url美化 url伪静态 Apache ,Ngnix和 IIS
  15. 第一个工作单位的那些事
  16. 绿布抠图;绿衣服抠图,视频单背景抠图
  17. 【转】Windows系统中简单卷、带区卷、跨区卷、镜像卷的测试对比
  18. java 多线程 从无到有_多线程断点续传(简单demo)——从无到有
  19. arcgis 圈选获取图层下点位_ArcGIS中62个常用应用技巧汇总【必须收藏】
  20. 电脑有时候会过段时间自己黑屏的问题及解决办法

热门文章

  1. tcp连接失败触发的异常
  2. jvm中年轻代,老年代
  3. 简易网络直播聊天室源码+自适应手机版正规企业财经直播聊天室系统
  4. idea 使用debug模式自动编译的设置
  5. 验证码登录开发----手机验证码登录
  6. Matlab中极值I型分布(Gumbel分布)的evcdf和evpdf及evinv函数
  7. CobaltStrike之Beacon命令使用
  8. python pylab.plot() 方法使用
  9. 展示一下香蕉派路由Android系统
  10. 记一次给博友答疑(shiro相关)