(1)编辑 mysql主配置文件 my.cnf
#vim /etc/my.cnf
在[mysqld]字段下添加参数
skip-grant
5.7版本下需要添加
#skip-grant-tables
(2)重启数据库服务
#service mysqld restart
(3)这样就可以进入数据库不用授权了
#/usr/local/mysql/bin/mysql -uroot
(4)修改相应用户密码
use mysql;
update user set password=password(‘your password‘) where user=‘root‘;
flush privileges; 在不重启mysql的情况下让配置生效
quit;
(5)修改/etc/my.cnf 去掉 skip-grant , 重启 mysqld 服务
mysql服务启动时,不仅会监听 IP:Port,还会监听一个 socket,我们安装的 mysql是监
听在/tmp/mysql.sock。如果 php是在本地,那么php 和 mysql通信可以通过socket通信,如
果是远程,就需要通过 tcp/ip来通信了。在Linux 命令行下,我们可以通过如下的方法来连
接mysql服务器。
(1)tcp/ip的方式
#/usr/local/mysql/bin/mysql -uroot -h127.0.0.1
这样就连接上了,因为默认 mysql的root用户密码为空,所以不用加-p 选项,我们可
以给他设置一个密码
#/usr/local/mysql/bin/mysqladmin -uroot password ‘aminglinux.com‘
当然,这是第一次设置密码时可以这样,但是当你再次设置时,就需要先输入之前 root
的密码了。
#/usr/local/mysql/bin/mysqladmin -uroot -paminglinux.com password ‘AmingLinux‘
你有没有想到一个问题,每次我们敲命令都是用的绝对路径,这样很烦,那如何不烦,
你有没有想到我们之前学过的知识点。我有两个办法,第一设置alias,第二设置PATH。
#alias mysql=/usr/local/mysql/bin/mysql
#alias mysqladmin=/usr/local/mysql/bin/mysqladmin
如果想永久生效,记得把这两个 alias放到/etc/bashrc 里面即可。
另外就是设置PATH 了,如下。
#vim /etc/profile.d/path.sh
加入一行
export PATH=$PATH:/usr/local/mysql/bin
保存后,执行
#source /etc/profile.d/path.sh
当给mysql设置密码后再去连接,就需要加上-p选项了。
#mysql -uroot -pAmingLInux -h127.0.0.1
其中-h指定ip,那如果是远程机器,则-h 后面跟远程服务器 ip,默认port是3306,如
果是其他端口,需要用-P 来定义。
#mysql -uroot -pAmingLinux -h127.0.0.1 -P3306
给某个ip授权登陆
进入mysql
grant all on . to ‘用户名’@‘客户端ip’ identified by ‘密码’;#.为所有的表
use mysql;
select * from user where host=‘客户端ip‘/G;
(2)socket方式
这种只适合连接本机的 mysql,命令为:
#mysql -uroot -S /tmp/mysql.sock -pAmingLinux
这里的-S 可以省略掉。
如果使用mysql -uroot -p登录时报错
ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)
打开my.cnf,添加如下代码
[client]
socket=/var/lib/mysql/mysql.sock
重启mysqld,问题解决
查看都有哪些库
show databases;
查看某个库的表
use db; show tables;
查看表的字段
desc tb;
查看建表语句
show create table tb;
当前是哪个用户
select user();
查看当前库
select database();
创建库
create database db1;
创建表
create table t1 (id
int(4),name
char(40));
插入数据
insert into tb1 (id,name) values(1,‘aming‘);
查看数据库版本
select version();
查看mysql状态
show status;
修改mysql参数
show variables like ‘max_connect%‘;
set global max_connect_errors = 1000;
查看mysql队列
show processlist;
创建普通用户并授权
grant all on . to user1 identified by ‘123456‘;
grant all on db1. to ‘user2‘@‘10.0.2.100‘ identified by ‘111222‘;
grant all on db1. to ‘user3‘@‘%‘ identified by ‘231222‘;
更改密码
UPDATE mysql.user SET password=PASSWORD("newpwd") WHERE
user=‘username‘ ;
查询
select count() from mysql.user;
select from mysql.db; select * from mysql.db where host like ‘10.0.%‘;
插入
update db1.t1 set name=‘aaa‘ where id=1;
清空表
truncate table db1.t1;
删除表
drop table db1.t1;
删除数据库
drop database db1;
修复表
repair table tb1 [use frm];
以上就是我介绍的一些常用 mysql相关操作,当然不要觉得会这些就够了,毕竟这个只
是常用的操作,还有好多其他操作连我都没有用过,假如将来你用到,就查一查 mysql的文
档或者借助搜索引擎来搜一下把。另外,我还要再介绍一个知识点,在shell的命令行下去
执行mysql的操作。
#mysql -uroot -pAmingLinux mysql -e "show tables"
-e前面的 mysql指的是库的名字,-e选项后面双引号括起来的就是mysql的命令。
原文:http://blog.51cto.com/10941098/2163072