zoukankan      html  css  js  c++  java
  • 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默认存储引擎。

  • 相关阅读:
    [LeetCode] 382. Linked List Random Node 链表随机节点
    [LeetCode] 384. Shuffle an Array 数组洗牌
    [LeetCode] 489. Robot Room Cleaner 扫地机器人
    [LeetCode] 465. Optimal Account Balancing 最优账户平衡
    [LeetCode] 106. Construct Binary Tree from Inorder and Postorder Traversal 由中序和后序遍历建立二叉树
    百度地图Api进阶教程-创建标注和自定义标注3.html
    百度地图Api进阶教程-默认控件和自定义控件2.html
    百度地图Api进阶教程-基础地图示例1.html
    IS支持解析json
    C# 字典 Dictionary 遍历
  • 原文地址:https://www.cnblogs.com/bwteacher/p/9564349.html
Copyright © 2011-2022 走看看