show table status;
show table status where name ='表名'; 可以查看指定表的信息
show table status where name ='t_tst_draft_info';
近来发现Vps上的内存不够用,是由于Mysql启动后不断扩大内存引起的,于是查了下内存增大原因后,
为了减少内存,为了尽量使其能稳定运行Vps,Mysql内存减少是关键,这样的背景下,
关闭Mysql5.5.8的Innodb引擎,记录步骤如下:
1、stop mysql
2、编辑my.cnf文件[mysqld]下面的配置:
1)将default-storage-engine=INNODB前的注释掉(#)去掉在[mysqld]下面加入:default-storage-engine = MyISAM
2)将skip-innodb这行注释(不加上#); 如大版本的Mysql如:Mysql5.5,skip-innodb在Mysql5.5.18中已经改成loose-skip-innodb了!
3)innodb=OFF
3、在数据库目录中把ibdata1、ib_logfile0、ib_logfile1 这三个文件删掉。也可不用删除,我个人觉得删除保险点儿,呵呵:
4、start mysql:
5.启动时看日志是否真关闭了InnoDB引擎:
这行是关键:111105 10:27:39 [Note] Plugin 'InnoDB' is disabled.
启动日志如下:
6.终端进入Mysql后查看配置后的情况,没有了Innodb:
mysql> show engines;
show variables like '%storage_engine%';
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | MyISAM |
| storage_engine | MyISAM |
+------------------------+--------+
7.内存占用明显减少,改动前后:
果然,Innodb还是很耗费内存的,尤其是对一个小内存的Vps机器来说,而最主要是的Innodb还会在运行中消耗比启动时更大的内存,只是为了提高Innodb的性能罢了,所以,我的Vps果断关掉它,而要是自己生产服务器,还是建议打开并使用Innodb,更何况
现在的Mysql默认就是Innodb,在性能上都不是相当不错的。EOF
8.我的配置文件记录,Download Url:
为何要关闭,我是为了减少内存的消耗罢了,引用网上的文章摘录如下:
(1) Innodb表缓存: Innnodb表有自己的缓存,它保存了从一开始访问每个表的元数据。它们从未被清除过,如果有很多Innodb表的话,那么这个量就很大了。这也就意味着拥有 CREATE TABLE 权限的用户就可能把MySQL服务器的内存耗尽。
(2) MyISAM缓冲:MyISAM表可能会分配一个足以装下指定表最大记录的缓冲,而且这个缓冲直到表关闭了才释放。
MyISAM我要用,Innodb这个我可以不用,所以关闭之,主要是Vps内存太小,这样可以省下不少空间。阅读全文
为了减少内存,为了尽量使其能稳定运行Vps,Mysql内存减少是关键,这样的背景下,
关闭Mysql5.5.8的Innodb引擎,记录步骤如下:
1、stop mysql
2、编辑my.cnf文件[mysqld]下面的配置:
1)将default-storage-engine=INNODB前的注释掉(#)去掉在[mysqld]下面加入:default-storage-engine = MyISAM
2)将skip-innodb这行注释(不加上#); 如大版本的Mysql如:Mysql5.5,skip-innodb在Mysql5.5.18中已经改成loose-skip-innodb了!
3)innodb=OFF
3、在数据库目录中把ibdata1、ib_logfile0、ib_logfile1 这三个文件删掉。也可不用删除,我个人觉得删除保险点儿,呵呵:
4、start mysql:
5.启动时看日志是否真关闭了InnoDB引擎:
这行是关键:111105 10:27:39 [Note] Plugin 'InnoDB' is disabled.
启动日志如下:
6.终端进入Mysql后查看配置后的情况,没有了Innodb:
mysql> show engines;
show variables like '%storage_engine%';
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| default_storage_engine | MyISAM |
| storage_engine | MyISAM |
+------------------------+--------+
7.内存占用明显减少,改动前后:
果然,Innodb还是很耗费内存的,尤其是对一个小内存的Vps机器来说,而最主要是的Innodb还会在运行中消耗比启动时更大的内存,只是为了提高Innodb的性能罢了,所以,我的Vps果断关掉它,而要是自己生产服务器,还是建议打开并使用Innodb,更何况
现在的Mysql默认就是Innodb,在性能上都不是相当不错的。EOF
8.我的配置文件记录,Download Url:
下载文件
为何要关闭,我是为了减少内存的消耗罢了,引用网上的文章摘录如下:
(1) Innodb表缓存: Innnodb表有自己的缓存,它保存了从一开始访问每个表的元数据。它们从未被清除过,如果有很多Innodb表的话,那么这个量就很大了。这也就意味着拥有 CREATE TABLE 权限的用户就可能把MySQL服务器的内存耗尽。
(2) MyISAM缓冲:MyISAM表可能会分配一个足以装下指定表最大记录的缓冲,而且这个缓冲直到表关闭了才释放。
MyISAM我要用,Innodb这个我可以不用,所以关闭之,主要是Vps内存太小,这样可以省下不少空间。阅读全文
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.6.13.tgz
安装篇:https://www.cnblogs.com/l12138h/p/16293153.html
启停:
1)启动:
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf
2)停止:
[root@ml_test_bj_szq_10_169_70_54 bin]# ./mongo
MongoDB shell version v4.0.4
> use admin
switched to db admin
> db.shutdownServer();
server should be down...
2020-05-15T10:40:12.625+0800 I NETWORK [js] trying reconnect to 127.0.0.1:27017 failed
2020-05-15T10:40:12.625+0800 I NETWORK [js] reconnect 127.0.0.1:27017 failed failed
ss -lnt #成功停止无27017端口了。
源码安装:http://www.blogjava.net/xiaomage234/archive/2012/07/18/383403.html
MONGO_URL=mongodb://localhost:27017 meteor
db.players.find().limit(100);
db.players.update({"_id":"177ffc27-608b-4807-923c-6ea57f17ce11"}, {"name" : "Ada Lovelace", "score" : 2000});
http://www.mongovue.com/downloads/ GUI
http://rockmongo.com/?action=downloads
mongoDB非正常关闭后无法启动问题
servers don't have journaling enabled by default. Please use --journal if you want durability:
解决方法:
1、删除%MONGO_HOME%/db下的.lock文件
2、输入命令 mongod --repair
3、重启mongoDB
-----------------------------------------------------------------------------------------------------------------------
post ={"title":"My Blog Post","content":"Here's my blog post","date":new Date()}
db.blog.insert(post)
以上是插入示例。
shell中的基本操作
1.创建
post ={"title":"My Blog Post","content":"Here's my blog post","date":new Date()}
db.blog.insert(post)
2.读取
db.blog.find() 会返回集合blog里面所有的文档
db.blog.findOne() 只会查一个文档(更多详细看第四章)
3.更新
update 至少需要2个参数、
1.更新文档的限定条件
2.新文档
post.comments = []
db.blog.update("title":"My Blog Post",post)
4.删除
db.blog.remove("title","My Blog Post")
5.使用窍门
help 获取帮助
查看函数
db.foo.update
如何得到 foo-bar 集合
db.getCollection("foo-bar")
属性和目标集合同名时
db.getCollection("version")
访问子集
x.y 和 x['y']两种都可以 要学活灵活应用
6.数据类型
null {"x":null}
boolean(true 和 false) {"x":true}
64位浮点数 {"x",3}
字符串 {"x":"foobar"}
对象id {"x":ObjectId()}
日期 {"x" : new Date()}
正则表达式 {"x":/foobar/i}
代码 {"x": function(){/*....*/}}
未定义{"x":undefined}
数组 {"x":["a","b","c"]}
内嵌文档 {"x":{"foo":"bar"}}
对象Id 在不同的机器上 每次生成都会保持不同
编译安装:http://blog.chinaunix.net/uid-26922865-id-3400712.html
直接安装:
1、安装MongoDB
curl -o http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.0.tgz
tar -zxvf mongodb-linux-i686-2.0.0
2、启动MongoDB
./bin/mongod -dbpath=../data
./bin/mongo
3、实际操作
这个是Ok的,通过RockMongo客户端后,用户名:admin 密码:admin登录。
需要验证,实践些问题,用下面去掉:--auth这个。
这个能启动,且可以终端登
安装篇:https://www.cnblogs.com/l12138h/p/16293153.html
启停:
1)启动:
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf
2)停止:
[root@ml_test_bj_szq_10_169_70_54 bin]# ./mongo
MongoDB shell version v4.0.4
> use admin
switched to db admin
> db.shutdownServer();
server should be down...
2020-05-15T10:40:12.625+0800 I NETWORK [js] trying reconnect to 127.0.0.1:27017 failed
2020-05-15T10:40:12.625+0800 I NETWORK [js] reconnect 127.0.0.1:27017 failed failed
ss -lnt #成功停止无27017端口了。
源码安装:http://www.blogjava.net/xiaomage234/archive/2012/07/18/383403.html
MONGO_URL=mongodb://localhost:27017 meteor
db.players.find().limit(100);
db.players.update({"_id":"177ffc27-608b-4807-923c-6ea57f17ce11"}, {"name" : "Ada Lovelace", "score" : 2000});
http://www.mongovue.com/downloads/ GUI
http://rockmongo.com/?action=downloads
mongoDB非正常关闭后无法启动问题
servers don't have journaling enabled by default. Please use --journal if you want durability:
解决方法:
1、删除%MONGO_HOME%/db下的.lock文件
2、输入命令 mongod --repair
3、重启mongoDB
-----------------------------------------------------------------------------------------------------------------------
post ={"title":"My Blog Post","content":"Here's my blog post","date":new Date()}
db.blog.insert(post)
以上是插入示例。
shell中的基本操作
1.创建
post ={"title":"My Blog Post","content":"Here's my blog post","date":new Date()}
db.blog.insert(post)
2.读取
db.blog.find() 会返回集合blog里面所有的文档
db.blog.findOne() 只会查一个文档(更多详细看第四章)
3.更新
update 至少需要2个参数、
1.更新文档的限定条件
2.新文档
post.comments = []
db.blog.update("title":"My Blog Post",post)
4.删除
db.blog.remove("title","My Blog Post")
5.使用窍门
help 获取帮助
查看函数
db.foo.update
如何得到 foo-bar 集合
db.getCollection("foo-bar")
属性和目标集合同名时
db.getCollection("version")
访问子集
x.y 和 x['y']两种都可以 要学活灵活应用
6.数据类型
null {"x":null}
boolean(true 和 false) {"x":true}
64位浮点数 {"x",3}
字符串 {"x":"foobar"}
对象id {"x":ObjectId()}
日期 {"x" : new Date()}
正则表达式 {"x":/foobar/i}
代码 {"x": function(){/*....*/}}
未定义{"x":undefined}
数组 {"x":["a","b","c"]}
内嵌文档 {"x":{"foo":"bar"}}
对象Id 在不同的机器上 每次生成都会保持不同
编译安装:http://blog.chinaunix.net/uid-26922865-id-3400712.html
直接安装:
1、安装MongoDB
curl -o http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.0.tgz
tar -zxvf mongodb-linux-i686-2.0.0
2、启动MongoDB
./bin/mongod -dbpath=../data
./bin/mongo
3、实际操作
这个是Ok的,通过RockMongo客户端后,用户名:admin 密码:admin登录。
需要验证,实践些问题,用下面去掉:--auth这个。
这个能启动,且可以终端登
方式一:
方式二:
方式二:
05年再次实践:
如果没有问题,再次关闭后推入后台:
/usr/local/mysql/bin/mysqld_safe --user=root &
停止:
确定停止?:
root 4121 0.0 0.0 5800 2488 pts/35 S+ 16:22 0:00 mysql
gastonwu 5365 0.0 0.0 5192 2256 pts/67 S+ Aug24 0:00 mysql -u root -p
root 5844 0.0 0.0 5800 2516 pts/28 S+ 16:28 0:00 mysql -uwiki -p wiki -hlocalhost
root 11169 0.0 0.0 2768 744 pts/49 S+ 16:46 0:00 grep mysql
root 15169 0.0 0.0 5844 2712 pts/8 S+ Sep23 0:00 mysql
gastonwu 18138 0.0 0.0 5188 2276 pts/91 S+ Aug25 0:00 mysql -u root -p DB_DemoSoapp
root 23843 0.0 0.0 5800 2584 pts/27 S+ 15:40 0:00 mysql
root 27623 0.0 0.0 5800 2568 pts/99 S+ 14:08 0:00 mysql
启动:
Starting mysqld daemon with databases from /usr/local/mysql/data[1]+ Stopped /bin/sh /usr/local/mysql/bin/mysqld_safe --user=root
客户端登陆:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.27-max
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
如果已经连上后,重启后会出现:
当然,用pkill 杀mysql的进程也是也可以的,呵呵!
如果没有问题,再次关闭后推入后台:
/usr/local/mysql/bin/mysqld_safe --user=root &
mysqladmin -u root shutdown
停止:
[/usr/local/mysql/bin]# mysqladmin -u root shutdown
确定停止?:
[/usr/local/mysql/bin]# ps axu|grep mysql
root 4121 0.0 0.0 5800 2488 pts/35 S+ 16:22 0:00 mysql
gastonwu 5365 0.0 0.0 5192 2256 pts/67 S+ Aug24 0:00 mysql -u root -p
root 5844 0.0 0.0 5800 2516 pts/28 S+ 16:28 0:00 mysql -uwiki -p wiki -hlocalhost
root 11169 0.0 0.0 2768 744 pts/49 S+ 16:46 0:00 grep mysql
root 15169 0.0 0.0 5844 2712 pts/8 S+ Sep23 0:00 mysql
gastonwu 18138 0.0 0.0 5188 2276 pts/91 S+ Aug25 0:00 mysql -u root -p DB_DemoSoapp
root 23843 0.0 0.0 5800 2584 pts/27 S+ 15:40 0:00 mysql
root 27623 0.0 0.0 5800 2568 pts/99 S+ 14:08 0:00 mysql
启动:
[/usr/local/mysql/bin]# /bin/sh /usr/local/mysql/bin/mysqld_safe --user=root
Starting mysqld daemon with databases from /usr/local/mysql/data[1]+ Stopped /bin/sh /usr/local/mysql/bin/mysqld_safe --user=root
客户端登陆:
[/usr/local/mysql/bin]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.27-max
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
如果已经连上后,重启后会出现:
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 2
Current database: *** NONE ***
No connection. Trying to reconnect...
Connection id: 2
Current database: *** NONE ***
当然,用pkill 杀mysql的进程也是也可以的,呵呵!
Left和date_format函数:
[code]
$sql="select count(*) from Tbl_XXshow_XX where FXX='$XX' and FCode=2 and left(FTime,7)=left(now(),7)";
select count(*) as c from Tbl_Exchange_XX where FLType=218 and date_format(now(),'%Y-%m-%d')=date_format(FTime,'%Y-%m-%d')
[/code]
[code]
$sql="select count(*) from Tbl_XXshow_XX where FXX='$XX' and FCode=2 and left(FTime,7)=left(now(),7)";
select count(*) as c from Tbl_Exchange_XX where FLType=218 and date_format(now(),'%Y-%m-%d')=date_format(FTime,'%Y-%m-%d')
[/code]
在mysql中涉及到编码是最让人头疼的。
编写update.txt (注意:utf8的编码要存为utf8的txt格式,当然你也可以命名后缀改为:update.sql etc)
然后,发现php程序读出来发现是乱码。
查看mysql编码:
mysql> show variables like '%char%';
mysql> show variables like '%char%';
+--------------------------+----------------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-max-5.0.27-linux-i686-glibc23/share/mysql/charsets/ |
+--------------------------+----------------------------------------------------------------------+
8 rows in set (0.00 sec)
原来是:
| character_set_server | latin1 |
不是utf-8:
于是:需要,set names 'utf8';
mysql> set names "utf8";
Query OK, 0 rows affected (0.00 sec)
mysql> source /root/update.txt
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql>
在php中显示中文正常,哈哈哈!
编写update.txt (注意:utf8的编码要存为utf8的txt格式,当然你也可以命名后缀改为:update.sql etc)
source的sql包含中文(位置在/root/update.txt):
update Tbl_User set FAddr="四川内江东兴区平安路148号E栋8号" where FQQ="348813422";
update Tbl_User set FAddr="四川内江东兴区平安路148号E栋8号" where FQQ="348813422";
mysql> use DB_****_2nd;
Database changed
mysql> source /root/update.txt
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
Database changed
mysql> source /root/update.txt
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
然后,发现php程序读出来发现是乱码。
查看mysql编码:
mysql> show variables like '%char%';
mysql> show variables like '%char%';
+--------------------------+----------------------------------------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql-max-5.0.27-linux-i686-glibc23/share/mysql/charsets/ |
+--------------------------+----------------------------------------------------------------------+
8 rows in set (0.00 sec)
原来是:
| character_set_server | latin1 |
不是utf-8:
于是:需要,set names 'utf8';
mysql> set names "utf8";
Query OK, 0 rows affected (0.00 sec)
mysql> source /root/update.txt
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql>
在php中显示中文正常,哈哈哈!