Linux(Centos)下使用Mysql

来源:互联网 发布:js遍历数组 编辑:程序博客网 时间:2024/05/20 20:58

linux 查看内存、释放内存

free -m  查看内存

To free pagecache:  echo 1 > /proc/sys/vm/drop_caches
To free dentries and inodes:  echo 2 > /proc/sys/vm/drop_caches
To free pagecache, dentries and inodes:  echo 3 > /proc/sys/vm/drop_caches 释放内存


开启/关闭/重启MySql Server

首先登录为root账户,或者在一下命令前加sudo前缀。
如果你用的是RedHat/Fedora,那么就可以用这些命令:
   开启:         /etc/init.d/mysqld start
   关闭:         /etc/init.d/mysqld stop
   重启:         /etc/init.d/mysqld restart
   
如果你用的是Debian/Ubuntu,就可以用这些命令:
   开启:         /etc/init.d/mysql start
   关闭:         /etc/init.d/mysql stop
   重启:         /etc/init.d/mysql restart


Mysql 启动InnoDB 

首先,你安装mysql已经支持innodb引擎才行,可以通过以下命令查看:
mysql> show engines;

若结果中列Engine有innodb的记录,且列Support为"YES"则表示支持.
若列Engine有innodb的记录,但且列Support为"NO",则说明你参数文件中屏蔽了innodb引擎的使用,你去参数配置文件中注释掉"#skip-innodb"项.
若列Engine没有innodb的记录,则表示你的版本没有支持innodb引擎,你必须去重新安装支持innodb引擎的版本(如果是自己编译安装的, 要加上innodb对应的参数).
确定你安装的mysql版本支持innodb后,你"表结构是MyISAM,并且里面有了一些数据,如果改成INNODB"很容易实现,可以直接用命令更新表的存储引擎即可,如:

alter table tb_name engine=innodb;(版本5.0后都可以用engine参数)

alter table tb_name type=innodb;(低版本中用type参数)

show table status from IP; 查看表的状态,包括所使用搜索引擎类型


配置InnoDB出现错误:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock

如果你在/etc/my.cnf文件中配置了InnoDB,比如讲与InnoDB注释相关的去掉,就会出现上述错误。需要修改InnoDB对应的下述目录。

如果你是想配置InnoDB,那么在my.cnf中,

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /usr/local/mysql/var/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /usr/local/mysql/var/
#innodb_log_arch_dir = /usr/local/mysql/var/

需改为mysql默认的数据库目录

innodb_data_home_dir = /var/lib/mysql/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /var/lib/mysql/
innodb_log_arch_dir =  /var/lib/mysql/


查看mysql内表所使用的搜索引擎

show table status from DB_Name  //查看所有的表的情况

show table status from DB_Name where name='table_name'  //查看特定表的情况


Mysql快速插入数据方法

load data  infile / load data local infile

local的意义在于,如果是在客户端访问服务器,需要加local ,如果直接在服务器上操作的话,不需要使用local。建议,最好使用绝对路径,不然省的麻烦。

我的Mysql版本是5.0,是可以使用的load data infile的。

开发为Eclipse  C++  load data infile:

string sql="load data local infile 'data_file_path' into table table_name fields terminated by '\\t' lines  terminated by  '\\n' "

这里主要说两点,

1、table_name 不需要加单引号!开始不懂,看别人加了,我也加了,就出现sql语法错误。

2、\t ,\n等,如果想打印出原式,在双引号内只有 两个斜杠\\ 才表示一个斜杠\ ,这样 \\t才是表示 \t 。

如果按照这样的话,根本不需要进行什么/etc/my.cnf内 local-infile=1的配置,也不需要在sql语句内加入什么"set load data local =1"。


Linux(centos)下使用mysql connector c++ 出现问题 (eclipse中)

Mysql数据库版本5.0 不应该使用最新的mysql connector c++ 1.1.3,可以使用mysql connector 1.0.5。

将动态库libmysqlcppconn.so加入到项目属性的C++ build -》setting-》C++ linker 中。

会出现libstdc.so.5不能被使用。这时候需要下载安装一个补丁。

地址:http://vdisk.weibo.com/s/akrZxiI7hG3bz ,下载后 rpm -ivh  compat-libstdc++-33-3.2.3-61.x86_64.rpm。

后面就可以啦。。。。编译通过。。。

其实最好还是版本对应下,不然出问题很让人纠结 。。。。

我就是因为太纠结了,所以Mysql是5.6版本的,mysql connector c++是1.1.3.


Linux查看安装过的RPM包(比如mysql)

使用命令 rpm -qa|grep mysql,值得注意的是 mysql是区分大小写的,有的要写成MySQL。如果要忽略的话,使用

rpm -qa|grep -i mysql 。


Centos二次安装Mysql出现的问题

删除 rpm -e 包

删除  rm -rf  /var/lib/mysql 文件夹

删除  rm /etc/my.cnf

安装 rpm -ivh  包

查看装好的状态时,不要着急就service mysql start ,先 service mysql status,出现:

MySQL is not running, but lock file (/var/lock/subsys/mysql)

此时,删除 rm /var/lock/subsys/mysql文件试试,再重新service  mysql start ,应该是可以的。

如果初始root密码在  /root/.mysql_secret 中。


Linux mysql 清除root密码

1、管理员登录 su root

2、跳过表权限执行mysql数据库

   /usr/bin/mysqld_safe --skip-grant-tables --skip-networking &  ;

  输入完毕后,接着输入mysql,登录mysql数据库

3、更新root密码,update mysql.user set password='' where user='root' ;

4、退出后,重新启动mysql 。service mysql start。

5、尝试root登录。 mysql -u root -p ,两次enter键 直接进入数据库。


0 0
原创粉丝点击