linux下mysql的安装

一.下载

http://dev.mysql.com/downloads/mysql/

选择对应的版本,这里选择“Linux-Generic”

以64位系统为例,这里需要下载如下两个文件:

MySQL-client-5.6.10-1.linux_glibc2.5.x86_64.rpm

MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm

二.安装

root用户安装

在下载路径下执行命令:

rpm -qa | grep mysql:查询系统是否安装了mysql包

如果安装先卸载,因为系统自带的基本都是老版本。

rpm -e mysql-libs-5.1.66-2.el6_3.x86_64 --nodeps:卸载mysql包

先安装服务

rpm -ivh MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm

rpm -ivh --replacepkgs --replacefiles MySQL-server-5.6.10-1.linux_glibc2.5.x86_64.rpm

--replacepkgs:如果已经安装,可以使用该选项覆盖安装

--replacefiles:如果遇到文件冲突,使用该命令可以解决

接着安装客户端

rpm -ivh  MySQL-client-5.6.10-1.linux_glibc2.5.x86_64.rpm

三.配置启动文件

cp /usr/share/mysql/my-default.cnf /etc/my.cnf

vi /etc/my.cnf

[mysqld]下增加如下信息:

port= 3306  #端口

default-character-set=utf8 #字符编码  5.5以上版本要配置为character-set-server=utf8

wait_timeout=288000  # 链接超时,默认为8小时,单位为秒

四.启动与关闭mysql

/etc/init.d/mysql start/stop

或者

service mysql start/stop/restart

mysql安装完成默认就是会随系统启动的,可以使用如下命令查看mysql的运行级别:

chkconfig --list mysql

修改mysql的运行级别为35启动:

chkconfig --level 35 mysql on 

五.登录mysql

第一次登录使用root的默认密码,安装完成后默认root密码保存在当前root用户的home/.mysql_secret中

mysql -u root -p

登录成功够必须先修改密码,如下:

mysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');

六.开放访问权限

登录后分别执行如下命令,开放root的远程登录权限,需要在iptables中开放3306端口

mysql>grant all PRIVILEGES on *.* to root@'%' identified by 'newpwd'; 

mysql>grant all PRIVILEGES on *.* to root@'localhost' identified by 'newpwd';

mysql>flush privileges;

七.创建新的数据库

mysql>create database newdbtest;

mysql>use newdbtest;(打开库)

八.创建新的用户并授权

mysql> grant all PRIVILEGES on newdbtest.* to newdbuser@'%' identified by '123456'; 

九.取消root远程登录权限

mysql>revoke all PRIVILEGES on *.* from root@'%' identified by 'newpwd';

 十.备份与恢复

备份newdbtest :mysqldump -p --opt newdbtest > back_newdbtest

Enter password: root密码

恢复newdbtest :mysql -u root -p newdbtest  < back_newdbtest

Enter password: root密码

十一.取消大小写区分

Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;

用root帐号登录后,在/etc/my.cnf中的[mysqld]后添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;
lower_case_table_names参数详解:
lower_case_table_names=0
其中0:区分大小写,1:不区分大小写

MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:
1、数据库名与表名是严格区分大小写的;
2、表的别名是严格区分大小写的;
3、列名与列的别名在所有的情况下均是忽略大小写的;
4、变量名也是严格区分大小写的;
MySQL在Windows下都不区分大小写。

十二.开启慢查询和bin-log日志

在/etc/my.cnf中的[mysqld]后添加如下内容:

long_query_time=2 #慢查询记录超过的时间,这里只2秒

slow-query-log=1 #开启慢查询日志

log_queries_not_using_indexes=1 #记录下没有使用索引的查询语句

log_bin=mysql-bin #开启bin-log日志

说明:相关日志文件默认在/data/mysqldb下。

关于bin-log的操作可以参考:http://blog.chinaunix.net/uid-25266990-id-3359560.html

注:5.6以后的版本与之前的版本配置参数上略有不同,可以使用如下命令查看支持的参数列表:

mysqld --verbose --help #是否设置成功也可以通过该命令查看

可以使用mysqldumpslow命令查看慢查询日志信息:

mysqldumpslow -s c -t 20 host-slow.log

mysqldumpslow -s r -t 20 host-slow.log

上述命令可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。

mysqldumpslow -t 10 -s t -g “left join” host-slow.log这个是按照时间返回前10条里面含有左连接的sql语句。

十三.意外被锁

由于某种原因导致mysql意外停止,比如直接杀掉了myslq的进程,这样会导致mysql被锁:

[root@localhost ~]# service mysql status

MySQL is not running, but lock file (/var/lock/subsys/mysql) exists[失败]

解决方法是,删除/var/lock/subsys/mysql文件即可。

常用mysql命令:

1.登录

mysql -u用户名 -p密码 -h服务器IP地址 数据库 :登录并打开指定数据库,但这样做的缺点是密码要明文输入。

2.登录后命令

mysql> status;       查看数据库状态

mysql> select version();        查看MySQL的版本号

mysql> select current_date();        查看MySQL的当前日期

mysql> select version(),current_date(); 同时查看MySQL的版本号和当前日期

mysql> show databases;            显示当前存在的数据库

mysql> use mysql            选择使用数据库(USE和QUIT命令不需要分号结束)

mysql> select database();        显示当前选择的数据库

mysql> show tables;            显示当前数据库中存在的表

mysql> select * from db;        显示表(db)的内容    

mysql> describe[desc] mytable;        显示表的结构

或show columns from 表名;

mysql> select user,host,password from mysql.user;  查询用户信息

mysql> source mysql.sql;   执行sql脚本

相关推荐