mysql 数据库管理的笔记

一、安装

sudo apt-get install mysql-server mysql-client
/etc/mysql/my.cnf 配置文件解释
socket    = /var/run/mysqld/mysqld.sock 中的 mysqld.sock 是正常启动 mysql 之后才会有的,所以现在不用管它。
datadir    = /var/lib/mysql    数据库目录,每新建一个数据库,这里就会增加一个数据库名的文件夹

二、启动和停止

sudo /etc/init.d/mysql start
sudo /etc/init.d/mysql stop mysqladmin -uroot -ppassword shutdown
sudo /etc/init.d/mysql restart

 

sudo /etc/init.d/mysql start
出现下面的信息,但是也不影响使用。
* Starting MySQL database server mysqld                                 [ OK ]
* Checking for corrupt, not cleanly closed and upgrade needing tables.

三、登录

1、连接数据库
(1)本地:
mysql  -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
这个是表示连接不到 socket ,上面提了,要先启动 mysql 才行。mysql  -uroot
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
mysql -uroot -p
然后输入密码才行。(2)远程:
mysql -h 192.168.1.1 -uroot -p2、修改密码
(1)在数据库中修改密码
use mysql;
Update user SET Password=PASSWORD('new_password') Where user='root';
(2)使用 mysqladmin 修改密码
mysqladmin -uroot -pold_password password new_password
(3)忘记 mysql 的 root 密码
先关掉 mysql 进程,在以不检查权限的方式启动,登录修改密码,清除权限,最后重启。
sudo /etc/init.d/mysql stop
mysqld_safe --skip-grant-tables
mysql -uroot -p
mysql> update mysql.user set password=PASSWORD('new_password') where User='root';
mysql> flush privileges;
mysql> quit
sudo /etc/init.d/mysql restart

创建comet用户,可以从任何主机登录,密码为123456
create user 'comet'@'%' identified by '123456';
授权comet拥有testDB数据库的所有权限
grant all privileges on testDB.* to 'comet'@'%';
或直接两句sql完成添加用户和全部授权,默认的全部授权是不包括grant权限的:
grant all privileges on *.* to 'comet'@'%' identified by '123456';
update user set Grant_priv  = 'Y' where User = 'comet';

刷新系统权限表
flush privileges;

四、显示命令

1、显示数据库列表。
show databases;
刚开始时才两个数据库:mysql和test。mysql 库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
use mysql;
show tables;
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名 (字段设定列表);
6、删库和删表:
drop database  库名;
drop table  表名;
7、将表中记录清空:
delete from 表名;
8、显示表中的记录:
select * from 表名;
9.导出整个数据库
mysqldump -u用户名 -p密码 -R 数据库名 > 导出的文件名 (参数-p和密码之间不能有空格)
mysqldump -ucomet -p12345678 -R 3gcomet > comet.sql
-R 包括存储过程和函数,默认是不包括的。
10.导出一个表
mysqldump -u用户名 -p 数据库名 表名> 导出的文件名 (如果没有输入密码则需要在执行本命令后输入密码)
mysqldump -ucomet -p 3gcomet users> comet_users.sql
11.导出一个数据库结构
mysqldump -ucomet -p -d --add-drop-table  3gcomet >/home/comet/comet_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
12.导入数据库
常用source 命令
进入mysql数据库控制台,如
mysql -u root -p
mysql>use 3gcomet;
然后使用source命令,后面参数为脚本文件
mysql>source /home/comet/3gcomet.sql;
13.导入不带标题行的 csv 文件
(1)通过mysqlimport导入。本地服务器,用户comet,密码123456,删除原来的数据,设置默认字符集为gb2312,字段之间以逗号分隔,字符串以半角双引号包围,字符串本身的双引号用两个双引号表示,数据行之间以rn分隔,数据库labeyes,表名为computerinfo。这里的表名区分大小写,并且是要存在的。
mysqlimport --local --user=comet --password=123456 --delete --default-character-set="gb2312" --fields-terminated-by="," --fields-enclosed-by="" --fields-escaped-by="" --lines-terminated-by="rn" labeyes "computerinfo.csv"
(2)登录mysql后选择好数据库,把 /tmp/Computerinfo.csv 导入 ComputerInfo,替换原来的数据,设置默认字符集为gb2312,字段之间以逗号分隔,字符串以半角双引号包围,字符串本身的双引号用两个双引号表示,数据行之间以rn分隔。csv文件名和表名不需要一样。注意文件应有可以被mysql读取的权限。
mysql>load data infile "/tmp/Computerinfo.csv" replace into table ComputerInfo character set gb2312 fields terminated by "," enclosed by ""  escaped by "" lines terminated by "rn";
 14.从一台服务器的数据库直接导出到另一台服务器的数据库
u:用户,p:密码,3gcomet:数据库名,3gcomet.com:远程服务器
mysqldump -ucomet -p12345678 --opt 3gcomet | mysql -h 3gcomet.com -ucomet -p12345678 -C 3gcomet

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据