02: MySQL的安装与基本配置
MySQL其他篇
目錄:
參考網(wǎng)站
- 1.1 MySQL安裝與基本配置(centos 7.3)
- 1.2 修改MySQL默認(rèn)字符集和引擎
- 1.3 MySQL創(chuàng)建用戶與授權(quán)
1.1 MySQL安裝與基本配置(centos 7.3)?????返回頂部
安裝參考網(wǎng)址:https://www.cnblogs.com/jorzy/p/8455519.html
1、查看系統(tǒng)中是否已安裝 MySQL 服務(wù):以下提供兩種方式
rpm -qa | grep mysql
yum list installed | grep mysql
2、如果已安裝則刪除 MySQL 及其依賴的包
? yum -y remove mysql-libs.x86_64
3、下載 mysql57-community-release-el7-8.noarch.rpm 的 YUM 源
? wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
4、安裝 mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
安裝完后,得到如下兩個(gè)包:
mysql-community.repo
mysql-community-source.repo
5、安裝 MySQL,出現(xiàn)提示的話,一路 Y 到底
yum install mysql-server?
6、安裝mysql所需的庫和包含文件
yum -y install mysql-devel?
7、獲取mysql初始密碼
service mysqld start
grep "password" /var/log/mysqld.log
8、mysql管理常用命令
systemctl status mysqld
systemctl start mysqld
systemctl stop mysqld
9、開機(jī)啟動(dòng)
systemctl enable mysqld
systemctl daemon-reload
10、Mysql安裝成功后,默認(rèn)的root用戶密碼為空,可以直接登錄
mysql -uroot -p
mysqladmin -u root password "1"? ? ? ? ? ? ? ? ?# 給root用戶配置密碼:1
mysql -uroot -p1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 配置完密碼后必須使用密碼登錄
1.2 修改MySQL默認(rèn)字符集和引擎?????返回頂部
1. 安裝完MySQL使用外鍵關(guān)聯(lián)創(chuàng)建表失敗,原因是默認(rèn)引擎不對(duì)
2. 向MySQL插入中文發(fā)現(xiàn)顯示亂碼,原因是默認(rèn)字符集不對(duì)
show variables like 'character%';????????????????????????????????????? #查看MySQL默認(rèn)字符集
3. 解決方法是修改MySQL配置文件?vim /etc/my.cnf
4.?面試題:你的數(shù)據(jù)庫用什么存儲(chǔ)引擎?區(qū)別是?
1. 常見的有MyISAM和InnoDB。
2. InnoDB:? 支持外鍵約束,支持事務(wù)。對(duì)索引都是單獨(dú)處理的,無需引用索引。
3. MyISAM: 不支持外鍵約束,不支持事務(wù),對(duì)數(shù)據(jù)大批量導(dǎo)入時(shí),它會(huì)邊插入數(shù)據(jù)邊建索引。
? ? ? ? ? ? ? ? ? ? ?所以為了提高執(zhí)行效率,應(yīng)該先禁用索引,在完全導(dǎo)入后再開啟索引
1.3 MySQL創(chuàng)建用戶與授權(quán)?????返回頂部
1、創(chuàng)建用戶
1.?命令 :?CREATE USER 'username'@'host' IDENTIFIED BY 'password';
1、username: 你將創(chuàng)建的用戶名
2、host:? ?指定該用戶在哪個(gè)主機(jī)上可以登陸,如果是本地用戶可用localhost,如果想讓該用戶可以從任意遠(yuǎn)程主機(jī)登陸,可以使用通配符%
3、password:? 該用戶的登陸密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登陸服務(wù)器
2、例子
1、CREATE USER 'tom'@'localhost' IDENTIFIED BY '123456';? ? ? ? ?#允許tom從localhost登錄
2、CREATE USER 'jack'@'1.1.1.100' IDENTIFIED BY '123456';? ? ? ? ? #允許jack從1.1.1.100主機(jī)登錄
3、CREATE USER 'fly'@'%' IDENTIFIED BY '123456';? ? ? ? ? ? ? ? ? ? ? ? ?#允許fly從任意主機(jī)登錄
4、mysql -h 1.1.1.3 -P 3306 -u jack -p123456? ? ? ? ? ? ? ? ? ? ? ? ? ?# jack從1.1.1.100登錄MySQL
5、update mysql.user set authentication_string=PASSWORD('Chnsys@2016') where user='opwf';? ? ? ? ? ? ?# 修改用戶密碼
2、授權(quán)
1.?命令?:?GRANT privileges ON databasename.tablename TO 'username'@'host'
1、privileges:? ? ?用戶的操作權(quán)限,如SELECT,INSERT,UPDATE等,如果要授予所的權(quán)限則使用ALL
2、databasename:? ?數(shù)據(jù)庫名
3、tablename:? ?表名,如果要授予該用戶對(duì)所有數(shù)據(jù)庫和表的相應(yīng)操作權(quán)限則可用*表示,如*.*
2.例子
1、GRANT SELECT, INSERT ON testdb.student TO 'tom'@'%';? ? ? ? ? ?# 授權(quán)tom對(duì)testdb數(shù)據(jù)庫有查詢和插入權(quán)限
2、GRANT ALL ON *.* TO 'jack'@'%';? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 授權(quán)jack對(duì)所有數(shù)據(jù)庫、所有表所有權(quán)限
3、查看權(quán)限?
1、show grants for 'tom'@'localhost';? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?# 查看用戶tom在主機(jī)1.1.1.100上的權(quán)限
2、show grants for root;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 查看root用戶所有權(quán)限
4、撤銷權(quán)限?
1、REVOKE all ON *.* FROM 'tom'@'%';? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # 撤銷tom對(duì)所有數(shù)據(jù)庫、所有表、的所有權(quán)限
# 1、創(chuàng)建用戶 create user 'mup'@'%' identified by 'mup_yiducloud';# 2、授予mup用戶授予對(duì)mup數(shù)據(jù)庫的操作權(quán)限 GRANT ALL ON mup.* TO 'mup'@'%'; flush privileges; select host,user from mysql.user;# 3、刪除用戶 Delete FROM mysql.user Where User='mup' and Host=”localhost”; Delete FROM mysql.user Where User='mup'; # 4、修改root密碼 update mysql.user set authentication_string=password('mysqlRootPwd') where user='root' and Host = 'localhost'; mysql創(chuàng)建與授權(quán)常用操作1.4 mysql常見報(bào)錯(cuò)?
1、ERROR 1819 (HY000): Your password does not satisfy the current policy requirements?
# mysql -u root -p #登錄 # mysql>set global validate_password_policy=0; #密碼強(qiáng)度設(shè)為最低等級(jí) # mysql>set global validate_password_length=4; #密碼允許最小長度為4 # mysql>flush privileges; #更新授權(quán)表,生效2、ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'bsp'
參考地址:https://blog.csdn.net/slovyz/article/details/52182283
1. 報(bào)錯(cuò)原因?
1.?其實(shí)應(yīng)該可以說基本上都是因?yàn)閙y.cnf 文件里面有skip-name-resolve參數(shù)這個(gè)參數(shù)導(dǎo)致這不能解析hostname或其它方式的登錄;
2.?所以登錄任何用戶,匹配的時(shí)候不走root@'localhost',或者127.0.0.1或者::1而是 一個(gè)勁的走root@'%';
2、解決方法
#1、查看一下每種方式下的root用戶是否有g(shù)rant權(quán)限 mysql> select Grant_priv from user where Host='127.0.0.1'; +------------+ | Grant_priv | +------------+ | N | +------------+ 1 row in set (0.00 sec)mysql> select Grant_priv from user where Host='localhost'; +------------+ | Grant_priv | +------------+ | N | +------------+ 1 row in set (0.01 sec)#2、在不重啟MySQL服務(wù)的情況下,只需要在登錄的時(shí)候加上-h參數(shù) (a). /usr/local/mysql/bin/mysql -uroot -p123456 -h localhost (b). /usr/local/mysql/bin/mysql -uroot -p123456 -h127.0.0.1#3、更改用戶權(quán)限讓其擁有g(shù)rant權(quán)限 mysql> update user set Grant_priv='Y' where Host='127.0.0.1'; mysql> update user set Grant_priv='Y' where Host='localhost'; mysql> flush privileges;#4、退出重新用root登錄,然后再操作 解決方法3、ERROR 1045 (28000): Access denied for user 'opwf'@'localhost' (using password: YES)?
參考地址:https://www.cnblogs.com/bk7788/p/6388562.html
1. 報(bào)錯(cuò)原因?
1.?大意就是你有一個(gè)用戶名為空的賬戶,mysql會(huì)先匹配它,然后就一直提示你密碼錯(cuò)誤,刪掉這個(gè)匿名用戶,然后執(zhí)行 FLUSH PRIVILEGES;
DELETE FROM mysql.user WHERE user='';
FLUSH PRIVILEGES
?
轉(zhuǎn)載于:https://www.cnblogs.com/xiaonq/p/8398690.html
總結(jié)
以上是生活随笔為你收集整理的02: MySQL的安装与基本配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入理解viewport
- 下一篇: GPU 实现 RGB -- YUV 转换