MariaDB与MySQL
一、MariaDB安装部署
tar zxvf mariadb-5.5.31-linux-x86_64.tar.gz
mv mariadb-5.5.31-linux-x86_64 /usr/local/mysql //必需这样,很多脚本或可执行程序都会直接访问这个目录
groupadd mysql //增加 mysql 属组
useradd -g mysql mysql //增加 mysql 用户 并归于mysql 属组
chown mysql:mysql -Rf /usr/local/mysql // 设置 mysql 目录的用户及用户组归属。
chmod +x -Rf /usr/local/mysql //赐予可执行权限
cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf //复制默认mysql配置 文件到/etc目录
/usr/local/mysql/scripts/mysql_install_db --user=mysql //初始化数据库
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql //复制mysql服务程序 到系统目录
chkconfig mysql on //添加mysql 至系统服务并设置为开机启动
service mysql start //启动mysql
vim /etc/profile //编辑profile,将mysql的可执行路径加入系统PATH
export PATH=/usr/local/mysql/bin:$PATH
source /etc/profile //使PATH生效。
mysqladmin -u root password 'yourpassword' //设定root账号及密码
mysql -u root -p //使用root用户登录mysql
use mysql //切换至mysql数据库。
select user,host,password from user; //查看系统权限
drop user ''@'localhost'; //删除不安全的账户
drop user root@'::1';
drop user root@127.0.0.1;
select user,host,password from user; //再次查看系统权限,确保不安全的账户均被删除。
flush privileges; //刷新权限
1)修改字符集为UTF8
vi /etc/my.cnf
在[client]下面添加 default-character-set = utf8
在[mysqld]下面添加 character_set_server = utf8
2)增加错误日志
vi /etc/my.cnf
在[mysqld]下面添加:
log-error = /usr/local/mysql/log/error.log
general-log-file = /usr/local/mysql/log/mysql.log
3) 设置为不区分大小写,linux下默认会区分大小写。
vi /etc/my.cnf
在[mysqld]下面添加:
lower_case_table_name=1
修改完重启:#service mysql restart
MySQL安装部署(二)
1.解压tar包
cd /software
tar -xzvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.21-linux-glibc2.5-x86_64 mysql-5.6.21
2.添加用户与组
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql mysql-5.6.21
3.安装数据库
su mysql
cd mysql-5.6.21/scripts
./mysql_install_db --user=mysql --basedir=/software/mysql-5.6.21 --datadir=/software/mysql-5.6.21/data
4.配置文件
cd /software/mysql-5.6.21/support-files
cp my-default.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysql
vim /etc/init.d/mysql #若mysql的安装目录是/usr/local/mysql,则可省略此步
修改文件中的两个变更值
basedir=/software/mysql-5.6.21
datadir=/software/mysql-5.6.21/data
5.配置环境变量
vim /etc/profile
export MYSQL_HOME="/software/mysql-5.6.21"
export PATH="$PATH:$MYSQL_HOME/bin"
source /etc/profile
6.添加自启动服务
chkconfig --add mysql
chkconfig mysql on
7.启动mysql
service mysql start
8.登录mysql及改密码与配置远程访问
mysqladmin -u root password 'your_password' #修改root用户密码
mysql -u root -p #登录mysql,需要输入密码
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION; #允许root用户远程访问
mysql>FLUSH PRIVILEGES; #刷新权限
二、MySQL 字段类型
数字类型:
1、tinyint 1字节
2、smallint 2字节
3、mediumint 3字节
4、int 4字节
5、bigint 8字节
6、float 浮点数
7、double 双精度
8、decimal(总长度,小数位长度)
日期类型:
1、date 日期
2、datetime 日期时间
3、timestamp 时间戳
4、time 时间
字符类型:
1、char 不可变长度的字符串
2、varchar 可变字符串字符串
3、text 大文本类型
其他类型:
1、blob 二进制流类型
2、enum 枚举 插入值时 对应的值 必须在枚举中存在
3、set 一个字符串对象,可以有零或多个值,其值来自表创建时规定的允许的一列值。
三、数据库函数
字符串类
CHARSET(str) //返回字串字符集
CONCAT(str [,... ]) //连接字串
INSTR(str,substring) //返回substring首次在string中出现的位置,不存在返回0
LCASE(str) //转换成小写 oracle lower(字符串)
UCase(str)//转换为大写 oracle upper(字符串)
LEFT(str,length) //从string2中的左边起取length个字符 等价于 SUBSTRING(str,1,length);
SUBSTRING (str, position [,length ])//从str的position开始,取length个字符。
LENGTH(str) //string长度
LTRIM(str) //去除前端空格
RTRIM(str) //去除后端空格
STRCMP(str1,str2) //逐字符比较两字串大小,
REPLACE(str,search_str,replace_str) //在str中用replace_str替换search_str
LOAD_FILE(file_name) //从文件读取内容 例如 load_file(全路径);
LOCATE(substring,str [,start_position]) //同INSTR,但可指定开始位置,找到第一个字符串在第二个字符串的位置
LPAD(str,length,pad ) //重复用pad加在str开头,直到字串长度为length
RPAD(str,length,pad) //在str后用pad补充,直到长度为length
REPEAT(str,count) //重复count次
comress(string) //对字符串进行压缩
uncomress(被压缩的字符串) //对字符串进行解压缩
数学类
ABS(number) //绝对值
FLOOR(number) //向下取整 只保留整数位 不会四舍五入
CEILING(number) //向上取整 只要小数位大于0的值 整数位都进1
ROUND(number [,decimals ]) //四舍五入,decimals为小数位数]
FORMAT(number,decimal_places) //保留小数位数 第二个参数是必选的
RAND([seed]) //随机数
MOD(numerator,denominator ) //求余 等价于 数字%数字
BIN(decimal_number) //十进制转二进制
CONV(number,from_base,to_base) //进制转换
HEX(DecimalNumber) //转十六进制
LEAST(number, number2 [,..]) //求最小值
POWER(number,power ) //求指数
日期时间类
NOW() //当前时间
CURRENT_DATE() //当前日期 缩写 curdate()
CURRENT_TIME() //当前时间 缩写 curtime()
CURRENT_TIMESTAMP() //当前时间戳 定位到某一个时间点
//添加时间 第二个参数参数为1个值时 添加秒 参数为 时间:时间 添加小时和分钟
ADDTIME(date2,time_interval) //将time_interval加到date2
//formatCode的格式为 select date_format(now(),'%Y-%m-%d %H:%i:%s');
DATE_FORMAT(datetime,FormatCodes) //使用formatcodes格式显示datetime
DATEDIFF(date1,date2) //两个日期差 结果是天数
CONVERT_TZ(datetime2,fromTZ ,toTZ ) //转换时区
DATE(datetime) //返回datetime的日期部分
DATE_ADD(date2, INTERVAL d_value d_type) //在date2中加上日期或时间
DATE_SUB(date2, INTERVAL d_value d_type) //在date2上减去一个时间
DAY (date) //返回日期的天
DAYNAME (date) //英文星期
DAYOFWEEK (date) //星期(1-7) ,1为星期天
DAYOFYEAR (date) //一年中的第几天
EXTRACT (interval_name FROM date) //从date中提取日期的指定部分
MAKEDATE(year,day) //给出年及年中的第几天,生成日期串
MAKETIME(hour,minute,second) //生成时间串
MONTHNAME(date) //英文月份名
SEC_TO_TIME(seconds) //秒数转成时间
STR_TO_DATE(string,format) //字串转成时间,以format格式显示
TIMEDIFF(datetime1,datetime2 ) //两个时间差
TIME_TO_SEC(time) //时间转秒数]
WEEK(date_time [,start_of_week ]) //第几周
YEAR(datetime) //年份
DAYOFMONTH(datetime) //月的第几天
HOUR(datetime) //小时
LAST_DAY(date) //date的月的最后日期
MICROSECOND(datetime) //微秒
MONTH(datetime) //月
MINUTE(datetime) //分返回符号,正负或0
SQRT(number2) //开平方
转换函数
convert(expression,type)
cast(expression as type)
四、MariaDB与Mysql
MariaDB 5.x与Mysql 5.x 大部分内容几乎一样。开发人员再使用上甚至不用区分。
在服务器优化器、存储引擎方面MariaDB 10.x更加明显。
五、MariaDB默认数据库
mysql 存储MariaDB服务器用户认证信息。
information_schema 存储各种数据表信息
performance_schema 记录处理查询请求时发生的各种事件、锁、的现象。
test 供测试使用的数据库,一般都会删除。
六 、优化【SQL解析器-SQL优化器-存储引擎】
统计信息
执行计划分析
存储引擎
myIsam 不支持事务且只支持表级锁,非常特殊的条件下会使用。
Aria 支持页面缓存[ROW_FORMAT]和事务[TRANSACTIONAL],MariaDB创建内部表会使用。
XtraDB MariaDB 5.5默认存储引擎,是InnoDB的超集。
InnoDB MariaDB 10.0默认存储引擎。
MariaDB与MySQL的更多相关文章
- centos7 高速安装 mariadb(mysql)
从最新版本的linux该系统启动,缺省值是 Mariadb代替mysql! 使用系统自带repos安装非常easy: yum install mariadb mariadb-server system ...
- MariaDB与MySQL在一台服务器同时运行
[root@HE3 ~]#groupadd mariadb -g 513 [root@HE3 ~]#useradd-u 513 -gmariadb -s /sbin/nologin -d /home/ ...
- mariaDB vs mysql
mariaDB vs mysql 今天遇到一个库使用的是mariaDB的数据库版本 Server version: 10.1.20-MariaDB MariaDB Server 理了一下mariaDB ...
- MariaDB 和 MySQL 比较
MariaDB.org - Supporting continuity and open collaborationhttps://mariadb.org/ MariaDB 和 MySQL 比较 - ...
- MariaDB MariaDB、MySQL存储过程、游标基础应用举例说明
MariaDB.MySQL存储过程.游标基础应用举例说明 by:授客 QQ:1033553122 测试环境: MariaDB-10.0.19-centos7-x86_64 实践操作: # 创建测试数据 ...
- 数据库对比:选择MariaDB还是MySQL?
作者 | EverSQL 译者 | 无明 这篇文章的目的主要是比较 MySQL 和 MariaDB 之间的主要相似点和不同点.我们将从性能.安全性和主要功能方面对这两个数据库展开对比,并列出在选择数据 ...
- MariaDB与MySQL并存
以下是MariaDB官方文档说明,MariaDB如何安装在已经存在MySQL实例的主机上: https://mariadb.com/kb/en/library/installing-mariadb-a ...
- Buildroot MariaDB替代MySQL
/********************************************************************************* * Buildroot Maria ...
- mariadb或者mysql查看某个库相关的用户授权信息
mariadb或者mysql查看某个库相关的授权信息 SELECT * FROM mysql.Db WHERE Db='DB_NAME';
随机推荐
- js之promise讲解
1 Promise概述 Promise对象是CommonJS工作组提出的一种规范,目的是为异步操作提供统一接口. 那么,什么是Promises? 首先,它是一个对象,也就是说与其他JavaScript ...
- 问题10:获取当前页面宽度JS
var mleft=document.getElementById("mleft"); var h = document.documentElement.clientHeight; ...
- [LeetCode] Most Common Word 最常见的单词
Given a paragraph and a list of banned words, return the most frequent word that is not in the list ...
- javaweb中的文件上传的一般写法(初次接触时写)
javaweb上传文件 上传文件的jsp中的部分 上传文件同样可以使用form表单向后端发请求,也可以使用 ajax向后端发请求 1. 通过form表单向后端发送请求 <form id=&quo ...
- 转载Alpine Linux常用命令
Alpine Linux常用命令 目录 一:Alpine Linux开启SSH远程登陆 1.简介: 2.配置 3.配置命令 4.重启服务 二:Alpine Linux源管理 1.简介 2.国内源简介: ...
- SOAPwebservice 与Restfull webservice之间的区别
简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于 XML 的协议,可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传 ...
- corefx 源码追踪:找到引起 SqlDataReader.ReadAsync 执行延迟的那行代码
最近遇到一个非常诡异的问题,在一个 ASP.NET Core 2.2 项目中,从 SQL Server 数据库查询 100 条数据记录,会出现 16-22s 左右的延迟.延迟出现在执行 SqlData ...
- 如何查询注册表的值及 Powershell 应用
利用 c:\windows\system32\reg.exe 的 query 参数即可. reg.exe 的参数如下: C:\windows\system32> reg.exe /?REG Op ...
- easyui技术积累
1.easyui-textbox与easyui-combobox的onChange事件 //在页面载入后执行下面函数$('#xxx_id').textbox({ onChange: function( ...
- [Day18]集合框架Collection、迭代器、增强for循环以及泛型
1.集合 1.1集合-本身是一个存储的容器 集合类的基本接口是Collection接口,这个接口有两个基本方法 (1)boolean add(E element) 用于向集合中添加元素,如果添加元素确 ...