(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 http://repo.mysql.com/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/my.cnf
日誌文件:/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` )
本文轉自:https://blog.csdn.net/pengjunlee/article/details/81212250