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 dbtest;
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,也可以用这个方法杀掉进程重新重启。