服务器端
1. 安装:
-
安装
sudo apt-get install mysql-server
-
启动
sudo service mysql start
-
停止
sudo service mysql stop
-
重启
sudo service mysql restart
2. 配置:
-
找到mysql配置文件并修改
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
-
主要配置项如下
bind-address表示服务器绑定的ip,默认为127.0.0.1
port表示端口,默认为3306
datadir表示数据库目录,默认为/var/lib/mysql
general_log_file表示普通日志,默认为/var/log/mysql/mysql.log
log_error表示错误日志,默认为/var/log/mysql/error.log
- 重启mysql,生效
客户端
- 图形化界面 navicat
- 命令行客户端
# 安装
sudo apt-get install mysql-client
# 查看帮助文档
mysql --help
# 运行客户端
# 默认连接本地服务器
mysql -u[username] -p[password]
# 远程连接
mysql -hip地址 -uroot -p
# 退出
exit
数据类型
- 整数:int,bit
- 小数:decimal
- 字符串:varchar,char,text
- 日期时间: date, time, datetime
- 枚举类型(enum)
特别说明:
- decimal表示浮点数,如decimal(5,2)表示共存5位数,小数占2位
- char表示固定长度的字符串,如char(3),如果填充'ab'时会补一个空格为
'ab '
- varchar表示可变长度的字符串,如varchar(3),填充'ab'时就会存储'ab'
- 字符串text表示存储大文本,当字符大于4000时推荐使用
- 对于图片、音频、视频等文件,不存储在数据库中,而是上传到某个服务器上,然后在表中存储这个文件的保存路径
- 更全的数据类型可以参考http://blog.csdn.net/anxpp/article/details/51284106
约束
- 主键primary key
- 非空not null
- 惟一unique
- 默认default
- 外键foreign key:对关系字段进行约束,当为关系字段填写值时,会到关联的表中查询此值是否存在,如果存在则填写成功,如果不存在则填写失败并抛出异常
- 说明:虽然外键约束可以保证数据的有效性,但是在进行数据的crud(增加、修改、删除、查询)时,都会降低数据库的性能,所以不推荐使用,那么数据的有效性怎么保证呢?答:可以在逻辑层进行控制
存储引擎 —— MyISAM与InnoDB区别
两种类型最主要的差别就是Innodb 支持事务处理与外键和行级锁。
在MySQL中,常用的数据引擎有MyISAM和InnoDB。两种类型最主要的差别就是Innodb 支持事务处理、外键和行级锁。而MyISAM不支持。所以MyISAM往往就容易被人认为只适合在小项目中使用。这里所说的行级锁是指最小粒度的锁,也支持表级锁。MyISAM支持表级锁,不支持事务、行级锁和外键。MyISAM强调的是性能,其执行性能比InnoDB要好,在少并发的环境下,查找(下面会讲原因)、插入(由于要维护数据库的完整性)等要比InnoDB要好。建议在对事务有要求或者高并发的情况下,用InnoDB引擎,否则用MyISAM。
存储引擎,更多细节,可参考:
https://blog.csdn.net/xifeijian/article/details/20316775
https://blog.csdn.net/mcfer/article/details/50958440
备份
- 进入 mysql 库目录
cd /var/lib/mysql
- 运行 mysqldump 命令
mysqldump -uroot -p 数据库名 > ~/bak.sql
# 按提示输入mysql的密码
恢复
- 连接mysql,创建新的数据库
- 退出连接,执行如下命令
mysql -uroot -p 新数据库名 < bak.sql
# 按提示输入mysql的密码
参考资料
https://blog.csdn.net/Scrat_Kong/article/details/81559935
https://blog.csdn.net/Scrat_Kong/article/details/81560316
网友评论