1、修改root賬號的登錄密碼
mysqladmin -u root password 'password';
2、權限設置
登錄mysql
mysql -u root -ppassword;
設置root賬號權限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTON;
刪除密碼爲空的記錄
use mysql;
delete from user where PASSWORD='';
3、my.cnf配置文件
default-character-set
在[mysqld]、[mysqldump]、[mysql]中加上下面代碼,指定utf8編碼格式
default-character-set = utf8
or
character-set-server=utf8for mysql 5.5
lower_case_table_names
如果文件系統是大小寫敏感的,如linux或unit下,這個值設0;如果文件系統是大小寫不感敏的,如Windows,Mac OS等,這個值設2;另外,在任何文件系統中,都可以把值設置成1, 但是在使用show table/show databases的時候,只會顯示小寫形式的內容,無法顯示創建時的正確內容。
skip-networking
在[mysqld]中把這行註釋掉,否則別的機器無法連接到mysql server.
常用操作命令
查看所有的數據庫
show databases;
查看當前數據庫所有的表
show tables;
查看錶結構
desc 'table';
explain 'table';
查看存儲過程
show procedure status;
show procedure status where Db='database name';
show create procedure 'proc_name';
修改表結構
//To add new column
alter table 'tablename' add column 'you column' varchar(50) first;
alter table 'tablename' add column 'you column' varchar(50) after 'anothercolumn';
//To remove unneeded column
alter table 'tablename' drop column 'columnname';
//To modify an old column
alter table 'tablename' change column 'oldcolumn' 'newcolumn' varchar(50);
數據庫備份
mysqldump -u root -ppassword -R databasename > file.sql
數據庫恢復
mysql -u root -ppassword databasename < file.sql
mysql常用函數
字符串連接
CONCAT(str1, str2, ...)
select concat('a','b','c',...);
IFNULL函數
IFNULL(exp1, exp2)
select ifnull(field, 'A');
IF函數
IF(exp1, exp2, exp3)
select if(1, 'A', 'B');
select if(0, 'A', 'B');
select if(null, 'A', 'B');
日期函數
CURDATE()//當前日期
CURTIME()//當前時間
YEAR(date)//返回年份
select year(concat(curdate(),' ',curtime()));
MONTH(date)//返回月份
select month(concat(curdate(),' ',curtime()));
DAY(date)//返回天數
select day(concat(curdate(),' ',curtime()));
HOUR(date)//返回時
select hour(concat(curdate(),' ',curtime()));
MINUTE(date)//返回分
select minute(concat(curdate(),' ',curtime()));
SECOND(date)//返回秒
select second(concat(curdate(),' ',curtime()));
DATE_FORMAT(date, format)日期格式化函數
format說明:
%W 星期名字(Sunday……Saturday)
%Y 年, 數字, 4 位
%y 年, 數字, 2 位
%d 月份中的天數, 數字(00……31)
%m 月, 數字(01……12)
select date_format(concat(curdate(),' ',curtime()), '%Y-%m-%d');
->2011-10-31
select date_format(concat(curdate(),' ',curtime()), '%Y-%m');
->2011-10