您的位置:首页 > 数据库 > MariaDB

MySql学习(MariaDb)

2015-05-31 18:26 429 查看

资料

/article/4662672.html

/article/4662672.html

MariaDb

官网: https://mariadb.org/
1. MySql .net Connector 在执行完命令后,关闭连接, 字符串中的 Password 会被清空。 设置带有 Password 的新字符串,连接字符串也不显示,但可以打开。

2. 我使用的是 HeidiSql客户端, 在使用 group_concat 函数时报错, 调试发现, group_concat 函数后面有一个空格,如果去除空格,则正确。不知道是客户端的原因,还是MySql的原因。

3. MySqlWorkbench 自定义快捷键: http://blog.csdn.net/stableboy/article/details/45887035
4. 国内镜像:

5. 连接: mysql -uroot -p1234

linux设置

查看状态: service mysql status

启动服务: service mysql start

对于mariadb新版: systemctl restart mariadb.service

转移数据库
http://blog.csdn.net/renfufei/article/details/17616549

大小写

设置MySql 区分大小写:

  1)找到Mysql服务的配置文件,它在服务启动参数中: --defaults-file ,默认是:C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

  2)在my.ini,在 [mysqld] 下添加: lower_case_table_names=0

  3)重启MySql服务。

CentOs7+mariadb10.0 路径: /etc/my.cnf.d/server.cnf

Ubuntu14+ mariadb10.1 路径: /etc/mysql/my.conf

设置远程连接

参考:http://www.cnblogs.com/24la/p/mariadb-remoting-access.html

在本地打开mysql,执行:

GRANT
ALL
PRIVILEGES
ON
*.*
TO
'root'
@
'%'
IDENTIFIED
BY
'123456'
WITH
GRANT
OPTION
;


flush
privileges
;


如果上面的办法不行(影响行数为0),则可以修改配置文件。把 my.conf 里的 bind-address一行注释掉。

非主键更新删除报错

http://jingyan.baidu.com/article/e5c39bf58ed69239d76033a4.html

执行:

SET SQL_SAFE_UPDATES = 0;

备份还原

我没有找到好的备份还原方法,MySql 这一点做的实在太差。

mysqldump -u root -d DataBaseName -R > FileName

-d是不生成Insert语句

-R是包含存储过程和函数

哭过骂过,心里就说,去他妈的!!!

语法

1.函数模板:

delimiter  $$

CREATE function  CompareStr (FirstVal varchar(1000),SecondVal varchar(1000) )
returns int
begin

if ( FirstVal is null )  then
return -1 ;
end if;

if ( SecondVal is null )  then
return -1 ;
end if;

set FirstVal = lower(rtrim(ltrim(FirstVal)));
set SecondVal = lower(rtrim(ltrim(SecondVal)));

if (FirstVal = SecondVal ) then
return 0;
else
return 1;
end if;

end
$$
DELIMITER ;


If ( condition) then statement elseif ( condition ) then statement end if ; 最后的 ; 一定要有。

2.存储过程模板

DELIMITER $$
CREATE  PROCEDURE `S_CreateVarTable`(VarTable varchar(50) , VarName   varchar(50), VarValue varchar(9)  )
label_pro:
begin

set @CorpTable = replace(VarTable , concat( '{' , VarName ,'}' ),  concat('{' , VarValue , '}')) ;

if exists (select 1 from information_schema.Tables where table_schema= database() and  table_Name = @CorpTable ) then
leave label_pro;
end if;

set @sql =  N'
create table `{InstanceTable}` (
select *
from `{VarTable}`
limit 0,0 );
';

set @sql = replace(@sql,'{VarTable}',   VarTable) ;
set @sql = replace(@sql,'{InstanceTable}',  @CorpTable) ;

prepare smt from @sql ;
execute smt ;

end$$
DELIMITER ;


3. 修改自增种子值:
alter table
users
AUTO_INCREMENT=10000;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: