centos下配置 msyql数据库
安装mysql
1.安装软件
yum install msyql mysql-server mysql-devel
2.为root 账号设置密码
mysqladmin -u root password 'new-password'
设置开机自启动
1,查看开机任务:
chkconfig --list
2,设置开机启动
chkconfig mysqld on
完全重装msyql
1,先通过命令删除msyql
rpm remove mysql mysql-server mysql-devel
2,搜索mysql参残余文件
find / -name mysql
3,删除这些文件,包括/etc/my.ini
账户操作
//创建用户
//CREATE USER ‘用户名’@’本地或远程ip’ IDENTIFIED BY ‘密码’;
CREATE USER ‘dbuser’@’localhost’ IDENTIFIED BY ‘password’;
//授权
//GRANT 功能 ON 数据库名.表名 TO ‘用户名’@’本地或远程ip’ %为所有host ALL PRIVILEGES 为所有的权限
GRANT SELECT , INSERT , UPDATE ON dbname.tablename TO ‘username’@’host’
//设置密码
SET PASSWORD FOR ‘username’@’%’ = PASSWORD(“password”);
//撤销权限
REVOKE SELECT ON . FROM ‘username’@’%’;
//删除用户
DROP USER ‘username’@’host’;
//远程登陆
mysql -h 115.18.80.117 -P 3306 -u root -p
//快速读取(非缓存 解决卡顿问题)
musql -uroot -proot -A
//刷新配置
FLUSH PRIVILEGES
库操作
//查看所有数据库
SHOW DATABASES;
//创建数据库
CREATE DATABASE dbname;
//指定编码创建数据库
create database dbname character set ‘utf8’ collate ‘utf8_general_ci’;
//创建时 指定编码
create database <数据库名> character set utf8;
//删除数据库
DORP DATABASE dbname;
//选定数据库
USE dbname;
//修改数据库名
MYISAM引擎:
1.关闭mysqld
2.修改data目录中的数据文件名
INNODB引擎:
1.新建数据库
2.使用rename table命令将表从原数据库复制到新数据库
3.在新数据库上重建存储过程、自定义函数、Events等
//导出数据库
// mysqldump -u 用户名 -p 数据库名 > 导出的文件名(在linux下输入命令,并非mysql下)
mysqldump -u dbuser -p dbname > userdir/newdata.sql
//导出表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u dbuser -p dbname tbname> dbname_tbname.sql
//导入数据库(在mysql下) 新建数据库时 务必注意编码问题
mysql -udbuser -ppassword dbname < dbname.sql
//修改编码
alter database <数据库名> character set utf8;
//查看数据库编码
show variables like “%char%”;
SHOW VARIABLES LIKE ‘character_set_%’;
中文乱码问题
//设置数据库编码
SET NAMES utf8;//等于修改下列3个
SET character_set_client='utf8';
SET character_set_connection='utf8';
SET character_set_results='utf8';
//如果上述代码无法成功修改,即重启mysql后 编码没有改变,那么就应该修改/etc/my.cnf文件 添加下列内容,这样即可完美解决问题
[mysqld]
character_set_server=utf8
[client]
default_character_set=utf8
[mysql]
no_auto_rehash
default_character_set=utf8
表操作
//建立表
CREATE TABLE tablename
//修改表
CREATE TABLE tablename
UPDATE tabename SET name='value' WHERE id = '13';
//删除表
查询数据
//查询该表所有数据
SELECT * FROM tablename;
//查看字段id =2的数据
SELECT * FROM tablename WHERE id=2;
//查看id等于2的数据,如果有多条数据只显示一条
SELECT 1 FROM user WHERE id = '2' LIMIT 1"
常用语句
//显示某一列出现过N次的值
SELECT id FROM tbl GROUP BY id HAVING count(*) = N;
//时间差 单位为秒 除以60就是所差的分钟数,除以3600就是所差的小时数,再除以24就是所差的天数。
UNIX_TIMESTAMP(dt2) - UNIX_TIMESTAMP(dt1)