一、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的更多相关文章

  1. centos7 高速安装 mariadb(mysql)

    从最新版本的linux该系统启动,缺省值是 Mariadb代替mysql! 使用系统自带repos安装非常easy: yum install mariadb mariadb-server system ...

  2. MariaDB与MySQL在一台服务器同时运行

    [root@HE3 ~]#groupadd mariadb -g 513 [root@HE3 ~]#useradd-u 513 -gmariadb -s /sbin/nologin -d /home/ ...

  3. mariaDB vs mysql

    mariaDB vs mysql 今天遇到一个库使用的是mariaDB的数据库版本 Server version: 10.1.20-MariaDB MariaDB Server 理了一下mariaDB ...

  4. MariaDB 和 MySQL 比较

    MariaDB.org - Supporting continuity and open collaborationhttps://mariadb.org/ MariaDB 和 MySQL 比较 - ...

  5. MariaDB MariaDB、MySQL存储过程、游标基础应用举例说明

    MariaDB.MySQL存储过程.游标基础应用举例说明 by:授客 QQ:1033553122 测试环境: MariaDB-10.0.19-centos7-x86_64 实践操作: # 创建测试数据 ...

  6. 数据库对比:选择MariaDB还是MySQL?

    作者 | EverSQL 译者 | 无明 这篇文章的目的主要是比较 MySQL 和 MariaDB 之间的主要相似点和不同点.我们将从性能.安全性和主要功能方面对这两个数据库展开对比,并列出在选择数据 ...

  7. MariaDB与MySQL并存

    以下是MariaDB官方文档说明,MariaDB如何安装在已经存在MySQL实例的主机上: https://mariadb.com/kb/en/library/installing-mariadb-a ...

  8. Buildroot MariaDB替代MySQL

    /********************************************************************************* * Buildroot Maria ...

  9. mariadb或者mysql查看某个库相关的用户授权信息

    mariadb或者mysql查看某个库相关的授权信息 SELECT * FROM mysql.Db WHERE Db='DB_NAME';

随机推荐

  1. Yarn任务提交流程(源码分析)

    关键词:yarn rm mapreduce 提交 Based on Hadoop 2.7.1 JobSubmitter addMRFrameworkToDistributedCache(Configu ...

  2. CSS3 三次贝塞尔曲线(cubic-bezier)

    例子:transition:all 1s cubic-bezier(.21,.2,.65,.1) 最近在看animation模块,其中animation-timing-function 和 trans ...

  3. JS节流和防抖

    事件的触发权很多时候都属于用户,有些情况下会产生问题: 向后台发送数据,用户频繁触发,对服务器造成压力 一些浏览器事件:window.onresize.window.mousemove等,触发的频率非 ...

  4. jenkins测试配置

  5. char

    1 char是多少位的 2 java用的是什么方式表示字符 3 Unicode是用多少位表示的 1的答案是16位的,2的答案是Unicode,3的答案是16位 值得注意的是,2的答案并不是utf-8 ...

  6. Codeforces 785D - Anton and School - 2 - [范德蒙德恒等式][快速幂+逆元]

    题目链接:https://codeforces.com/problemset/problem/785/D 题解: 首先很好想的,如果我们预处理出每个 "(" 的左边还有 $x$ 个 ...

  7. 托马斯微积分13版原版pdf

    泰国一大学的网站? 里边有好多书-- 悄悄的,不要外传-- http://www.maths.sci.ku.ac.th/suchai/417167/thomas.pdf

  8. 写一个方法,用于解读 url 后面的请求参数,最终得到 {"a":2,"b":3,"c":4};

    function getUrlParams(url){ let searchParam = url.split("?")[1]; let searchItemParams = se ...

  9. 温习排序算法(基于C指针)

    以前学过的数据结构课,貌似已经忘得一干二净了,偶然又翻起,书中最后一章详细介绍了7种排序算法,现在对其中4种做个总结.(为啥只总结4种,当然是因为偷懒,只想总结简单又常用的!) 先贴一张排序分类图: ...

  10. JMS笔记(三)

    最近重看activemq,对消息的传送确认机制有了进一步认识 1. mq在确认consumer收到消息后才会删除消息,因此consumer接收消息后应该进行ack"确认",java ...