【1】linux安装mysql
【2】查看数据库编码
【3】创建数据库时设置编码
【4】账户授权设置
【5】数据库编码格式
【6】mysql、mysqldump导出与导入sql文件
【7】CenterOS7中解决No package mysql-server available
推荐一个小程序:云来米,输入:KESS4HK提供技术支持关于云计算及服务器反佣服务
【1】linux安装mysql
#查看该操作系统上是否已经安装了mysql数据库
rpm -qa | grep mysql
#普通删除模式
rpm -e mysql
#强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
rpm -e --nodeps mysql
#通过yum来进行mysql的安装
yum list | grep mysql
yum install -y mysql-server mysql mysql-devel
#查看刚安装好的mysql-server的版本
rpm -qi mysql-server
#mysql数据库的初始化及相关配置(第一次启动时会初始化信息 service mysqld start)
mysqladmin -u root password 'root' #通过该命令给root账号设置密码为 root
#查看mysql服务是不是开机自动启动
chkconfig --list | grep mysqld?
#开机启动
chkconfig mysqld on?
#mysql的主配置文件
cat /etc/my.cnf?
#mysql数据库的数据库文件默认存放位置
/var/lib/mysql??
#mysql数据库的日志输出默认存放位置
tail -f /var/log/mysqld.log?
推荐一个小程序:云来米,输入:KESS4HK提供技术支持关于云计算及服务器反佣服务
【2】查看数据库编码
show variables like ‘character%’;
推荐一个小程序:云来米,输入:KESS4HK提供技术支持关于云计算及服务器反佣服务
【3】创建数据库时设置编码
CREATE DATABASE `correct` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
【4】账户授权设置
#============= MySQL5.0
#创建用户
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '123456';
CREATE USER 'pig'@'%' IDENTIFIED BY '';
CREATE USER 'pig'@'%';
#授权命令:(GRANT privileges ON databasename.tablename TO 'username'@'host')
GRANT SELECT, INSERT ON test.user TO 'pig'@'%';
GRANT ALL ON *.* TO 'pig'@'%';
#设置与更改用户密码 (SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword"); )
SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
flush privileges;
#撤销用户权限 (REVOKE privilege ON databasename.tablename FROM 'username'@'host';)
REVOKE SELECT ON *.* FROM 'pig'@'%'; (注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%', 则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限. )
#删除用户(DROP USER 'username'@'host';)
#root密码丢失,恢复root密码
service mysqld stop
#跳过mysql权限后台启动
/usr/bin/mysqld_safe --user=mysql --skip-grant-tables &
#修改密码后再以正常方式启动
#============= MySQL 5.7 用户密码修改
use mysql;
update user set authentication_string=password('新密码') where user='root' and Host='localhost';
flush privileges;
#============= MySQL5.5 用户密码修改
USE mysql;
SELECT * FROM USER;
UPDATE USER SET PASSWORD=PASSWORD('你的密码') WHERE USER='root';
GRANT SELECT ON test.employee TO 'eric'@'localhost' IDENTIFIED BY '123456';
【5】数据库编码格式
###查看编码格式
show variables like 'character%';
character_set_client utf8 #客户端使用的编码,如GBK, UTF8 比如你写的sql语句是什么编码的。
character_set_connection utf8 #连接使用的编码
character_set_database utf8
character_set_filesystem binary
character_set_results utf8 #查询返回的结果集的编码(从数据库读取的数据是什么编码的)。
character_set_server utf8mb4
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
#当查询进入时,查询会被服务器从 character_set_client转换到character_set_connection,当查询执行时,查询会被服务器从 character_set_connection转换到列字符集。
#查询反回时,数据直接被服务器从列字符集转换到 character_set_results。
###修改编码格式
character_set_client、character_set_connection、character_set_results这3个参数值是由客户端每次连接进来设置的,和服务器端没关系。登陆进mysql后,执行 set names utf8; 实际就是同时修改上面的这3个参数值的。
SET character_set_results=utf8; #临时修改,重启失效
#永久修改 /etc/mysql/mysql.conf.d/mysqld.cnf
[client]
default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqld]
character-set-server = utf8
init-connect='set names utf8'
【6】mysql、mysqldump导出与导入sql文件
###导出
#备份命令
mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql
#备份同时压缩
mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 | gzip > 文件名.sql.gz
#备份同个库多个表
mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 表1 表2 .... > 文件名.sql
#同时备份多个库
mysqldump -h主机名 -P端口 -u用户名 -p密码 --databases 数据库名1 数据库名2 数据库名3 > 文件名.sql
#备份实例上所有的数据库
mysqldump -h主机名 -P端口 -u用户名 -p密码 --all-databases > 文件名.sql
#备份数据出带删除数据库或者表的sql备份
mysqldump -h主机名 -P端口 -u用户名 -p密码 --add-drop-table --add-drop-database 数据库名 > 文件名.sql
#备份数据库结构,不备份数据
mysqldump -h主机名 -P端口 -u用户名 -p密码 --no-data 数据库名1 数据库名2 数据库名3 > 文件名.sql
#备份特定数据库中特定表的表格结构和满足特定条件的数据
mysqldump -h主机名 -P端口 -u用户名 -p密码 数据库名 表1 --where=" ctime>'2017-01-01' and ctime<'2017-06-30'" > 文件名.sql
###导入
#系统命令行导入
mysql -h主机名 -P端口 -u用户名 -p密码 数据库名 < 文件名.sql
#mysql命令行导入
mysql>
user db1;
source tb1_tb2.sql;
#恢复整个数据库的方法:
mysql -h主机名 -P端口 -u用户名 -p密码 < all_database.sql
【7】CenterOS7中解决No package mysql-server available
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-server