默認的yum安裝mysql都是5.1版本的 想要安裝5.7的可以進行配置rpm包進行,
mysql5.7安裝路徑
下面是默認的5.1安裝路徑
首先我們在使用yum安裝的的時候會默認使用最新安裝的,最先的mysql會有很多的不同這個時候下面會一一進行展示
先查看本機上有沒有mysql版本
yum list installed | grep mysql
如果有其他的版本的我們可以刪除再安裝
刪除mysql:
yum remove mysql rm -rf /usr/local/mysql # 刪除注冊表 yum remove mysql* # 刪除所有和mysql相關的信息 再執行:看看是否還有沒刪除干凈的信息 rpm -qa|grep mysql
當上面的之行為完畢之后 如果沒有其他的信息就再繼續裝
安裝命令:
yum -y install mysql mysql-server mysql-devel
當所有的執行完畢之后驗證是否安裝成功:
輸入命令:rpm -qi mysql-server
已經成功安裝
下面就是啟動mysql服務
service mysqld start
如何啟動/停止/重啟MySQL
一、啟動方式
1、使用 service 啟動:service mysqld start
2、使用 mysqld 腳本啟動:/etc/inint.d/mysqld start
3、使用 safe_mysqld 啟動:safe_mysqld&
二、停止
1、使用 service 啟動:service mysqld stop
2、使用 mysqld 腳本啟動:/etc/inint.d/mysqld stop
3、 mysqladmin shutdown
三、重啟
1、 使用 service 啟動:service mysqld restart
2、使用 mysqld 腳本啟動:/etc/inint.d/mysqld restart
然后進入mysql
mysql -u root
這個時候進入的時候你要看看你的權限的,因為雖然是使用root登陸但是有的權限是不夠的沒有開放需要進行切換
執行:
show databases;
這個時候設置密碼是不行的會報錯
是因為mysql數據庫的user表里,存在用戶名為空的賬戶即匿名賬戶,導致登錄的時候是雖然用的是root,但實際是匿名登錄的,通過錯誤提示里的''@'localhost'可以看出來,於是解決辦法:
法一: 1.關閉mysql # service mysqld stop 2.屏蔽權限 # mysqld_safe --skip-grant-table 屏幕出現: Starting demo from ..... 3.新開起一個終端輸入 # mysql -u root mysql mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root'; mysql> FLUSH PRIVILEGES;//記得要這句話,否則如果關閉先前的終端,又會出現原來的錯誤 mysql> \q
我們來使用忘記密碼的方式修改密碼:
就是要開兩個界面:
其中一個執行:
第一第二步:
輸入:
1、service mysqld stop # 先關閉服務 2、mysqld_safe --skip-grant-table # 跳過服務表
然后節目會停留在:
再開啟一個節面進入數據庫修改密碼:
1、mysql -u root mysql 2、UPDATE user SET Password=PASSWORD('新密碼') where USER='root'; 3、 FLUSH PRIVILEGES; # 這一步是必須的
這個時候執行第二步設置密碼就可以了
上面是5.7一下的修改語句 5.7版本的執行:
5.7版本以上的執行
update user set authentication_string=password("新密碼") where user='root';
然后再用新設置的密碼的登陸就可以查看到mysql庫了 然后就可以進行設置你的遠程訪問了,
因為是安裝的最新的mysql,這個時候再執行遠程訪問的命令是不行的
執行以前版本的設置是報錯的:GRANT ALL PRIVILEGES ON * . * TO ‘root’@’%’ IDENTIFIED BY ‘密碼’ WITH GRANT OPTION;
問題是:
這是因為:新版SQL授權用戶時報錯 near 'IDENTIFIED BY '密碼' with grant option' at line 1
原因:
因為新版的的mysql版本已經將創建賬戶和賦予權限的方式分開了
解決辦法:
查找MySQL的安裝目錄找到mysql_upgrade :
1、whereis mysql_upgrade
2、cd /usr/bin/
3、./mysql_upgrade -uroot -p123 (123為密碼)
效果:
這個時候再進入你的 mysql中執行:GRANT ALL PRIVILEGES ON * . * TO ‘root’@’%’ IDENTIFIED BY ‘密碼’ WITH GRANT OPTION;
這個時候就可以通過遠端進行鏈接了
還有另一種解決遠程鏈接方法方法(我沒試過哈哈):
先創建用戶 后指定用戶鏈接 1、創建用戶 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 說明: username:你將創建的用戶名 host:指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost,如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符% password:該用戶的登陸密碼,密碼可以為空,如果為空則該用戶可以不需要密碼登陸服務器 2、指定用戶權限 授權: 命令: GRANT privileges ON databasename.tablename TO 'username'@'host'
GRANT ALL PRIVILEGES ON Django.* To'Test'@'%' IDENTIFIED BY 'test'; # 指定Test用戶用對Djagno庫的所有的權限,可以遠程訪問
說明: privileges:用戶的操作權限,如SELECT,INSERT,UPDATE等,如果要授予所的權限則使用ALL databasename:數據庫名 tablename:表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*表示,如*.*
第三種修改密碼:
.修改MySQL的登錄設置:
# vim /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-grant-tables 保存並且退出vim
3.重新啟動mysqld
# service mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]
systemctl start mysqld(centos7) service mysqld start(centos6)
4.登錄並修改MySQL的root密碼
# mysql
5.7版本以上的執行 update user set authentication_string=password("新密碼") where user='root';
MySQL [mysql]> update user set password=password(123456) where user='root'; Query OK, 3 rows affected (0.00 sec) Rows matched: 4 Changed: 3 Warnin
最后一定要刪除/etc/my.conf 中的: 刪除或注釋skip-grant-tables
設置端口:
查看mysql端口可以在外部使用:netstat -ntlp 查看所有程序啟動的端口
也可以在內部使用:
show global variables like 'port';
默認啟動的是3306
我們也可以修改端口的
修改mysql啟動端口
yum安裝的配置信息一般都是/etc下的,所以我們要去、etc下去尋找配置信息進行修改mysql的配置信息在/etc/my.cnf內
vim /etc/my.cnf
默認是:
我們只需要設置端口即可:加入 port = 要啟動的端口即可
然后退出 重啟mysql服務
service mysqld restart
再查看端口就是我們配置的3307了
設置開機啟動(非必須)
chkconfig mysqld on