1、基本操作

连接:

本地连接: mysql -u用户名 -p密码               比如: mysql -uroot -p123456

远程连接: mysql -h公网ip -u用户名 -p密码



权限与密码:

创建授权: grant all privileges on *.* to 'root'@'%' identified by '123456';
查看已授权的用户: select user,host from mysql.user;
删除授权: drop user 'root'@'具体的ip';
  • *.* 代表授权访问所有数据库的所有表。
  • 'root' 代表以root用户的身份访问。
  • '%' 代表允许所有的ip远程访问,可以设置具体的ip地址。可以用 x.x.x.% 限定某个ip段。
  • 123456 代表新的登录密码



修改密码: mysqladmin -u用户名 -p旧密码 password 新密码



操作数据库

查看所有数据库: show databases;

使用库: use 库名;
创建库: create database 库名;
删除库: drop database 库名;



操作数据库表

创建表: create table 表名 (字段设定列表); 
删除表: drop table 表名;
修改表: alter table t1 rename t2
查询表: select * from 表名;
清空表: delete from 表名;



导入数据库

当数据库中有时间戳类型的列时,用navicate导入优势会报错;或者数据量巨大客户端会卡住,需要用sources命令:

mysql
use 数据库名;
set names utf8;
source D:/www/sql/back.sql;



数据库导出/备份

方法一:(一句完成,如果想用在linux脚本中,推荐这种写法)
mysqldump -h 127.0.0.1 -P 3306 -u root -p数据库密码 数据库名 > 导出路径

方法二:(需要交互式键入密码)
mysqldump -u root -p 数据库名 > 导出路径



启动: service mysqld start    
停止: service mysqld stop
重启: service mysqld restart
查看状态: service mysqld status



2、遇到的报错

Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

搜到的答案都很麻烦,需要处理mysql.sock文件之类的,但后来解决的办法很简单。

其实就是异常的操作卡住了,使用命令ps aux | grep mysql 命令将mysql相关的服务搜出来,然后kill -s 9 PID掉对应的进程号,再 service mysqld restart,即可。


同样的,如果重启mysql服务时一直卡在Redirecting to /bin/systemctl start mysqld.service,也可以用这个方法杀掉进程重新重启。