(1)检查系统中是否已安装 MySQL。
rpm -qa | grep mysql
返回空值的话,就说明没有安装 MySQL 。
注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL 。
(2)查看已安装的 Mariadb 数据库版本。
rpm -qa|grep -i mariadb
(3)卸载已安装的 Mariadb 数据库。
rpm -qa|grep mariadb|xargs rpm -e --nodeps
(4)再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成。
rpm -qa|grep -i mariadb
(5)下载安装包文件。
wget /mysql-community-release-el7-5.noarch.rpm
(6)安装mysql-community-release-el7-5.noarch.rpm包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
安装完成之后,会在 /etc/yum.repos.d/ 目录下新增 mysql-community.repo 、mysql-community-source.repo 两个 yum 源文件。
执行 yum repolist all | grep mysql 命令查看可用的 mysql 安装文件。
(6)安装mysql。
yum install mysql-server
(7)检查mysql是否安装成功。
rpm -qa | grep mysql
(8)启动 mysql 服务 。
systemctl start mysqld.service #启动 mysql
systemctl restart mysqld.service #重启 mysql
systemctl stop mysqld.service #停止 mysql
systemctl enable mysqld.service #设置 mysql 开机启动
(9)设置密码 。
mysql5.6 安装完成后,它的 root 用户的密码默认是空的,我们需要及时用 mysql 的 root 用户登录(第一次直接回车,不用输入密码),并修改密码。
# mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("这里输入root用户密码") where User='root';
mysql> flush privileges;
(10)设置远程主机登录
mysql> GRANT ALL PRIVILEGES ON *.* TO 'your username'@'%' IDENTIFIED BY 'your password';
执行以下命令,为root 用户添加远程登录的能力。
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";
配置文件:/etc/f
日志文件:/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
mysql常用命令
1.创建用户
格式:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
例如:CREATE USER 'chun'@'%' IDENTIFIED BY 'chun';
PS:username - 你将创建的用户名,
host - 指定该用户在哪个主机上可以登陆,此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录;
password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。
2.给用户授权
命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
例如:GRANT privileges ON *.* TO 'chun'@'%';
PS: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.*
3.设置与更改用户密码
命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
例子: SET PASSWORD FOR 'chun'@'%' = PASSWORD("chun");
4.撤销用户权限
命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';
说明: privilege, databasename, tablename - 同授权部分.
例子: REVOKE SELECT ON mq.* FROM 'chun'@'localhost';
PS: 假如你在给用户'dog'@'localhost''授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'dog'@'localhost', 则在使用REVOKE SELECT ON *.* FROM 'dog'@'localhost';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'dog'@'localhost';则REVOKE SELECT ON test.user FROM 'dog'@'localhost';命令也不能撤销该用户对test数据库中user表的Select 权限.
具体信息可以用命令SHOW GRANTS FOR 'dog'@'localhost'; 查看.
5.删除用户
命令: DROP USER 'username'@'host';
6.查看用户的授权
mysql> show grants for dog@localhost;
PS:GRANT USAGE:mysql usage权限就是空权限,默认create user的权限,只能连库,啥也不能干
7.数据库的创建和销毁
创建:create database 数据库名;
例如:create database mytest;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| CARDGAME |
| mysql |
| mytest |
| performance_schema |
| test |
+--------------------+
销毁:drop atabase 数据库名;
例如:drop database mytest;
mysql> flush privileges;
8.创建数据库表和删除表
创建表:
use 数据库名;
create table tb_dept( Id int primary key auto_increment, Name varchar(18),description varchar(100));
mysql> show tables;
+-------------------+
| Tables_in_mystest |
+-------------------+
| tb_dept |
+-------------------+
1 row in set (0.00 sec)
删除表:drop table 表名;
例如:drop table tb_dept;
9.给表添加索引:
1.添加PRIMARY KEY(主键索引)
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.添加UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` ADD UNIQUE (`column`)
3.添加INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.添加FULLTEXT(全文索引)
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column`)
5.添加多列索引
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )