/usr/local/mysql/bin/mysql -uroot #进入mysqlmysql
vim /etc/profilelinux
PATH=$PATH:/usr/local/mysql/bin #最后加上nginx
source /etc/profilesql
source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令。shell
功能:使Shell读入指定的Shell程序文件并依次执行文件中的全部语句数据库
source命令一般用于从新执行刚修改的初始化文件,使之当即生效,而没必要注销并从新登陆。vim
mysql -uroot mysqladmin -uroot password '123456' #修改密码 mysql -uroot -p'123456' #-p后面不能有空格,密码能够不带单引号,可是若是有特殊字符时会出现问题 #忘记密码怎么办,有的是办法 vi /etc/my.cnf [mysqld] skip-grant #忽略受权选项,平时生产中不要添加 /etc/init.d/mysqld restart #这样就不用进入数据库的受权了,能够修改密码了 mysql -uroot use mysql; update user set password=password('aminglinux') where user='root'; flush privileges; #修改完mysql库的密码后,再次编辑/etc/my.cnf/把增长的skip-grant删掉 #不删掉的话就能够不用密码进入任何库了,很是危险咱们需求只是修改mysql库的密码
mysql -uroot -p123456 #此方式只能链接本地数据库localhost,但不少时候都须要链接网络中某一个主机上的mysql mysql -uroot -p123456 -h127.0.0.1 -P3306 #-h指定远程主机的IP,-P(后面的)指定远程主机mysql的绑定端口,默认为3306 mysql -uroot -p123456 -S/tmp/mysql.sock #-S:=socket,指定socket。此方法只适用于本地链接,等同于“mysql -uroot -p123456” mysql -uroot -p123456 -e “show databases” #显示全部数据库,适用于shell脚本中
库由表组成,表由字段组成 查询库 show databases; 切换到mysql库 use mysql; 如下命令须要切换库以后执行: 查看库里的表 show tables; 查看表里的字段 desc tb_name; 查看建表语句 show create table tb_name\G; 查看当前是哪一个用户 select user(); 查看当前使用的数据库 select database(); 查看全部用户 select * from user\G; 建立一个新库 create database db_name; 建立一个新表t1 create table t1(`id` int(4),`name` char(40)); 查看当前数据库版本 select version(); 查看mysql当前状态 show status; 查看全部参数 show variables; 查看某参数 show variables like 'max_connect%'; 修改参数 set global max_connect_errors=1000; 查看mysql进程队列 show processlist; (用的最多的地方) 查看队列详细信息show full processlist; 删除库 drop database db_name 删除表 drop table tb_name #查看服务器队列在平常工做中最为频繁,由于它能够查看当前mysql在干什么,也能够发现是否有锁表
建立一个普通用户并受权 grant all on *.* to 'user1' identified by 'passwd'; 建立后指定登陆IP grant all on *.* to 'user1'@'127.0.0.1' identified by '123456a'; #建立user1用户all表示全部的权限,并授予其全部权限“*.*”(通配符) #第一个*表示db_name(全部的数据库);第二个*表示tb_name(全部的表) #同时指定其来源IP127.0.0.1(即,只可经过此IP登陆) #此处可使用通配符%,表明全部IP(通常不使用) #设定密码:identified by 用户登陆:使用IP登陆 mysql -uuser1 -p123456 -h127.0.0.1 建立后指定登陆socket(这里不太清楚后面注意) grant all on *.* to 'user2'@'localhost' identified by '123456'; 用户的登陆使用socker登陆 mysql -uuser2 -p'123456' #指定登陆主机为localhost,因此该用户默认使用(监听)本地mysql.socket文件,不须要指定IP便可登陆。
对具体权限进行受权: create database db1; #建立一个新库db1 grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.133.1' identified by 'passwd'; #建立user2用户,并授予其针对db1库SELECT,UPDATE,INSERT权限 grant all on db1.* to 'user3'@'%' identified by 'passwd';show grants; #建立user3,并针对全部IP授予其db1库全部权限 #用户和主机用@分割,主机IP用%代替表示全部主机 show grants; #查询当前用户权限 show grants for user2@192.168.133.1; #查看指定用户权限
select count(*) from mysql.user; #查看指定库的行数,musql.user表示mysql库的user表,count(*)表示共有多少行 select * from mysql.db; #查询库的全部内容 select db from mysql.db; select db,user from mysql.db; #查看库指定内容,db表的全部内容 select * from mysql.db where host like '192.168.%'; #查看某些IP对应的库内容,like表示匹配 insert into db1.t1 values (1, 'abc'); #向表中插入内容 update db1.t1 set name='aaa' where id=1; #更改表的某一行 truncate table db1.t1; #清空一个表中内容 drop table db1.t1; #删除表 drop database db1; #删除库
当数据库量小的时候用能够,若是量大了就须要用其余的备份方法备份:bash
备份指定库 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql 备份全部库 mysqldump -uroot -p123456 -A > /tmp/mysql.sql 恢复库 mysql -uroot -p123456 mysql < /tmp/mysql.sql 备份指定表 mysql -uroot -p123456 mysql user > /tmp/user.sql 只备份表结构 mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql 恢复表 mysql -uroot -p123456 mysql user < /tmp/user.sql