root用户是MySQL的超级管理员用户,它跟linux系统里的root用户相似,固然这个root用户并非系统的root用户,咱们也能够建立一个普通用户来链接MySQL,默认MySQL的root用户密码为空,能够不用输入密码,直接就能连上,但这样并不安全,所以须要给root用户设置密码,假如设置完密码后有一段时间不用又忘记了,这又涉及到重置密码。php
一、查看MySQL服务是否启动html
# ps aux |grep mysqldmysql
若是没有启动的话须要使用如下命令启动mysql服务linux
# /etc/init.d/mysqld startweb
二、首次登录mysqlsql
安装好mysql后首次登录mysql是不须要密码的,由于系统默认MySQL的root用户密码为空,咱们使用下面这个命令登录shell
# /usr/local/mysql/bin/mysql -uroot //下图能够看到已经成功登陆到mysql了数据库
三、修改环境变量vim
上面的登陆命令比较长,咱们也可使用下面的命令登录安全
# mysql -uroot
上图看到咱们不能直接使用这个命令,这是由于如今环境变量中尚未/usr/local/mysql/bin/这个路径,
# echo $PATH
因此咱们须要先将/usr/local/mysql/bin/这个路径加入到环境变量中去,以下:
# export PATH=$PATH:/usr/local/mysql/bin/
设置完毕,咱们再来使用简化命令登录,下图能够看到,登录成功
# mysql -uroot
可是这也只是临时生效,若是想要永久生效,还必须把上面的s设置export PATH=$PATH:/usr/local/mysql/bin/加入到/etc/profile这个文件中去,能够放到文件的最后一行
# vi /etc/profile
# source /etc/profile //这行命令要修改完成profile文件后执行,执行完这条命令后,就能永久生效了
四、设置密码并使用密码登陆mysql
密码登陆帐号的命令是
# mysql -uroot -p //此时咱们还未设置登陆密码,在系统要求输入密码时直接按回车键
这时咱们能够先退出mysql来,设置好密码后再使用密码登陆,设置密码的命令是;
# mysqladmin -uroot password '112233' //设置root用户的密码是112233
上图的警告是提示咱们设置的密码在当前行内显示出来了,这样不安全,能够忽略,上面设置好密码后咱们就不能使用命令# mysql -uroot 这个命令来登陆了
这时候咱们就必需使用密码来登陆
# mysql -uroot -p //在系统提示输入密码的地方输入咱们以前设置好的密码便可登陆成功
五、修改密码
若是咱们知道root用户原来的密码,如今想要修改为新的密码,须要使用下面的命令
# mysqladmin -uroot -p'112233' password '123123'
修改完成后,咱们直接将密码写在命令中来登陆
# mysql -uroot -p'123123' //注意此处的密码是用单引号引发来的,咱们也能够不使用单引号,可是密码中有可能出现#号、分号等特殊符号,这些特殊符号在linux命令行下可能不能被识别,所以通常建议将密码用单引号引发来
六、重置密码
当咱们不知道root用户密码时候,就须要重置密码后再来登陆,首先咱们须要修改mysql的配置文件
# vim /etc/my.cnf
在配置文件中的[mysqld]下面加入如下内容:
skip-grant //含义是忽略受权,意思是在操做mysql时不须要受权,不用用户名和密码便可登陆
修改完配置文件后,还须要从新启动mysqld服务
# /etc/init.d/mysqld restart
此时咱们再登陆就又不须要输入密码 了
# mysql -uroot
登陆进来以后咱们先切换到mysql的库中
# use mysql
接下来须要去user表中修改密码,咱们的用户名密码就是存在这张表中的,表中还存了些权限、受权等信息,先来看下user表中的内容
mysql> select * from user; //注意这里一条命令后要加上分号
咱们也能够查看一下root用户的密码
# select password from user where user='root';
能够看到root用户的密码是一长串字符串,这些字符串是用password()这个函数加密事后生成的
如今咱们来修改密码使用下面这条命令,其中第一个password是字段,第二个password()是给密码加密的函数
> update user set password=password('112233') where user='root';
到此时,密码已经修改为功,咱们就可使用新的密码来登陆了。可是咱们还须要去将/etc/my.cnf 增长的一行内容删除,若是不删除,那么数据库全部的用户均可以不用输入密码就能直接登陆,这是很是危险的
修改后重启mysqld # /etc/init.d/mysqld restart
一、链接本机
# mysql -uroot -p123456
二、链接远程数据库
# mysql -uroot -p123456 -h127.0.0.1 -P3306
三、socket链接
以前LNMP时,php有一个socket,咱们可使用TCP/IP链接它,也可使用socket链接它。mysql一样,不只监听了3306端口,还监听了一个socket
那么咱们就可使用socket去链接它,其实这种方式和第一种链接方式是同样的,第一种链接方式是默认就使用mysql.sock这个socket去链接
# mysql -uroot -p112233 -S/tmp/mysql.sock
这种使用socket通讯的方式只适合在本机
四、mysql登陆+操做命令
下面命令是链接mysql以后还会有一些操做数据库的命令,执行完成后又退出数据库,这种方式适用于shell脚本里面
# mysql -uroot -p112233 -e 'show databases'; //执行登录命令后当即显示全部的数据库而后退出数据库,
一、查询库
> show databases; //查看mysql中有哪些数据库
二、切换库
> use mysql; //切换到mysql这个库下面
三、查看库里面的表
> show tables; //命令结尾记得加分号
四、查看表里面的字段
# desc user; //查看user表里面的字段
上图中Field列是字段的名字,Type列是数据类型
五、查看建表语句
# show create table user\G; //其中\G表示竖排显示
六、查看当前用户
# select user(); //用于查看当前mysql登陆的用户是谁
结果查看到的用户是root@localhost ,其中localhost是登陆用户所在主机的主机名,mysql是能够经过登陆时的IP反解析出来主机名,
在mysql内容也是可使用上下方向键来查看用过的命令历史,这些命令历史记录存放位置是:
# ls -la //当前位置在/root/下
命令历史记录存放在/root/.mysql_history文件中,咱们来查看下:
# vim .mysql_history
一样的,mysql也支持ctrl+l清屏命令
七、查看当前使用的数据库
> select database(); //能够看到当前没有使用数据库,因此结果显示NULL
接下来咱们切换到mysql数据库中
> use mysql //这条命令是能够不用分号结尾的
再来查看正在使用的数据库
> select database(); //此时查看结果显示正在使用的库是mysql
八、建立库
> create database db1; //建立名字为db1的数据库
接下来咱们来查看mysql的库里面就能够看到已经多了一个db1库
九、建立表
首先须要切换到须要建立表的库中去
> use db1;
随后在db1这个库中新建立一张表
> create table t1(`id` int(4),`name` char(50));
这条命令表示的意思是建立一张表,表的名字叫t1,字段有id和name两个字段,他们的长度分别为4和50,其中字段须要用单引号引发来
咱们用下面的命令也能够看到建立这张表的语句是什么
> show create table t1\G;
上图能够看到charset字符集的值为latin1,若是不想使用这种字符集,咱们也能够像下面建立表,可是首先咱们将刚才建立的表t1删除掉再从新建立
> drop table t1; //删除表t1
> create table t1(`id` int(4),`name` char(50)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
这条命令指定了在建立表时使用的引擎和默认字符集
再来查看下表t1的建立过程
> show create table t1\G;
十、查看当前数据库的版本
> select version();
十一、查看数据库状态
> show status; //将经常使用的一些数据列出来
十二、查看各类参数
> show variables; //能够看到有不少的参数,这些参数是能够在my.cnf中定义的
若是只记得某个参数的一部分,能够像下面这样来查看
> show variables like 'max_connect%';
1三、修改参数
咱们能够在my.cnf配置文件中修改参数,同时也能够在mysql命令行里面修改参数,让修改在内存中生效,好比咱们能够将最大链接错误数max_connect_errors的值由100改成1000
> set global max_connect_errors=1000;
这时咱们再来查看最大链接错误数max_connect_errors的值就变成了1000
上面的修改只是临时有效,若是咱们退出mysql从新登陆后以前的配置就无效了,若是想要重启mysql后也要生效,须要在my.cnf配置文件中去修改
# vim /etc/my.cnf
1四、查看对列
> show processlist; //相似于在linux中用ps 或者top去查看
也可使用下面的命令来查看更详细的信息
> show full processlist;
扩展 mysql5.7 root密码更改 http://www.apelearn.com/bbs/thread-7289-1-1.html myisam 和innodb引擎对比 http://www.pureweber.com/article/myisam-vs-innodb/ mysql 配置详解: http://blog.linuxeye.com/379.html