Ⅰ centos7安裝的mysql怎麼遠程連接
1.安裝MySQL
CentOS7中默認安裝了MySQL系列的資料庫,需要先卸載掉。
查看當前安裝的mariadb包:
[root@bogon desktop]# rpm -qa | grep mariadb
將它們統統強制性卸載掉:
[root@bogon 桌面]# rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64
在官網下載RPM安裝包,http://dev.mysql.com/downloads/mysql/,下載完成後解壓。
雙擊安裝MySQL-server,MySQL-client和MySQL-devel三個安裝包。
2. 啟動MYSQL
[root@bogon desktop]#service mysql start
得到錯誤:ERROR!The server quit without updating PID file
我們這里主要是因為:selinux惹的禍,如果是centos系統,默認會開啟selinux。解決方法是關閉它,打開/etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled後存檔退出重啟機器。
然後再啟動mysql就沒問題了:
[root@bogon desktop]#service mysql start
查看MySQL運行狀態:
[root@bogon desktop]# service mysql status
SUCCESS! MySQL running (2377)
3. 設置密碼
安裝之後root用戶默認沒有密碼,通過命令設置密碼。
[root@bogon desktop]# /usr/bin/mysqladmin -u root password 'passok'
然後設置root用戶的遠程訪問許可權
在mysql控制台執行
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
4.開啟遠程連接
需要安裝iptables,
yum install -y iptables
然後編輯系統的開放埠列表,增加3306埠,重啟防火牆即可。
Ⅱ 如何設置centos環境下的mysql資料庫可供遠程連接
方法/步驟
首先,需要有一個centos系統,不管是虛擬機還是直接在電腦上安裝。下圖就是進入到centos系統下的截圖。(界面不比windows差哦)
之後,是進入到類始於windows下的控制台頁面(如果你是安裝的虛擬機那你可以通過putty等工具,直接在windows下類似於遠程訪問,進入到控制台下)輪空寬
之後,進入到控制台下,輸入rpm -qa | grep mysql,檢測下虧襪是否已經安裝了mysql。(可以通過 rpm -e 命令 或者 rpm -e --nodeps 進行卸載,在刪除完以後我們可以通過 rpm -qa | grep mysql 命令來查看mysql是否已經卸載成功)
之後,在控制台下輸入「yum install -y mysql-server mysql mysql-devel 」,回測,進行安裝。
之後,就不用管,進入到自動下載,之後再進入到解包的過程(下圖就是解包的提示信息,不用管,解包完成自動進入到安裝)
最後,當控制台頁面出現「臘亮complete」頁面時,則標明已經安裝成功了。
這個時候通過輸入「mysql -t root -p」進入到mysql頁面,輸入密碼之後進入。再次輸入「use mysql」即可使用mysql了。
Ⅲ centos6.5 php mysql怎麼設置資料庫
第一扮褲步:下載源程序下來 第二步:登陸到原來的phpmyadmin,將你的資料庫導出為sql文件 第三步:將程序上傳到新的空間並侍缺螞修改資料庫連接參數 第四老埋步:登陸新的phpmyadmin,將sql數據備份文件導入到相應的資料庫
Ⅳ linux下centos7 mysql怎麼連接不上
裝系統後,默認就是連接的。你放php程序後,連接mysql需要主機名ip
用戶名
密碼
資料庫名
資料庫用戶名帳號
密碼
這些,系統都會給的。直接連
Ⅳ php連接mysql資料庫,報錯Function mysql_connect() is deprecated
info.php在CentOS
64位虛擬機運行的時候,其中MySQL版本那一欄是空白信息。我查看了info.php源碼,開始以為是MySQL資料庫的用戶名和密碼填寫錯了,仔細檢查沒有錯誤之後,便查看了Apache的error_log,得到如下消息:
mysql_connect():
No
such
file
or
directory
在網上查了一下,說是本地socket設置與默認的不一樣,導致php無法找到mysql的socket文件。根據網上提供的方法,需要做如下操作。
首先,在MySQL中用status查看資料庫狀態,如下所示:
mysql
Ver
14.14
Distrib
5.1.69,
for
redhat-Linux-gnu
(x86_64)
using
readline
5.1
Connection
id:
10
Current
database:
Current
user:
root@localhost
SSL:
Not
in
use
Current
pager:
stdout
Using
outfile:
''
Using
delimiter:
;
Server
version:
5.1.69
Source
distribution
Protocol
version:
10
Connection:
Localhost
via
UNIX
socket
Server
characterset:
latin1
Db
characterset:
latin1
Client
characterset:
latin1
Conn.
characterset:
latin1
UNIX
socket:
/var/lib/mysql/mysql.sock
Uptime:
20
hours
55
min
30
sec
其中,標紅的部分是我們需要的。然後打開php.ini文件,需要將mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket的值設置為標紅後面的那個目錄。重啟apache伺服器,後續info.php工作正常,MySQL的版本信息能夠正常顯示了。
Ⅵ 騰訊雲主機linux centos7系統中php怎麼連接mysql
裝系統
後,默認就是連接的。你放php程序後,連接mysql需要
主機名
ip
用戶名
密碼
資料庫名
資料庫用戶名帳號
密碼
這些,系統都會給的。直接連
Ⅶ centos6.4怎麼遠程訪問mysql資料庫
第一:更改
「mysql」
數橡肆早據庫里的
「user」
表裡的
「host」
項,從」localhost」改稱'%'。
或者新加條記錄,「host」
項為要訪問的ip地址,並授權。重啟mysql服務。
第二:在系統防火梁雀牆添加例外埠:3306,並允許例外。
錯誤提示:
ERROR
1130:
Host
'192.168.1.3'
is
not
allowed
to
connect
to
this
MySQL
server
的解決方法:
1。改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時雹襲候只要在localhost的那台電腦,登入mysql後,更改
"mysql"
資料庫里的
"user"
表裡的
"host"
項,從"localhost"改稱"%"
1.mysql
-u
root
-pvmware
mysql>use
mysql;
mysql>update
user
set
host
=
'%'
where
user
=
'root';
mysql>select
host,
user
from
user;
Ⅷ centos下怎麼啟動mysql
一、MySQL安裝
Centos下安裝mysql 請點開:http://www.centoscn.com/CentosServer/sql/2013/0817/1285.html二、MySQL的幾個重要目錄
MySQL安裝完成後不象SQL Server默認安裝在一個目錄,它的資料庫文件、配置文件和命令文件分別在不同的目錄,了解這些目錄非常重要,尤其對於Linux的初學者,因為 Linux本身的目錄結構就比較復雜,如果搞不清楚MySQL的安裝目錄那就無從談起深入學習。
下面就介紹一下這幾個目錄。
2.1、資料庫目錄
/var/lib/mysql/
2.2、配置文件
/usr/share/mysql(mysql.server命令及配置文件)2.3、相關命令
/usr/bin(mysqladmin mysqlmp等命令)
2.4、啟動腳本
/etc/rc.d/init.d/(啟動腳本文件mysql的目錄)三、登錄MySQL
3.1、連接本機MySQL
例1:連接到本機上的MYSQL。
首先在打開DOS窗口,然後進入目錄 mysqlbin,再鍵入命令mysql -uroot -p,回車後提示你輸密碼,如果剛安裝好MYSQL,超級用戶root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符 是:mysql>。
3.2、連接遠程MySQL
例2:連接到遠程主機上的MYSQL。假設遠程主機的IP為:110.110.110.110,用戶名為root,密碼為abcd123。則鍵入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u與root可以不用加空格,其它也一樣)
3.3、退出MYSQL
命令: exit (回車)。
四、修改登錄密碼
MySQL默認沒有密碼,安裝完畢增加密碼的重要性是不言而喻的。
格式:mysqladmin -u用戶名 -p舊密碼 password 新密碼4.1、首次改密碼
例1:給root加個密碼ab12。首先在DOS下進入目錄mysqlbin,然後鍵入以下命令:
mysqladmin -uroot -password ab12
註:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了。
4.2、再次改密碼
例2:再將root的密碼改為djg345。
mysqladmin -uroot -pab12 password djg345
五、增加用戶
(注意:和上面不同,下面的因為是MySQL環境中的命令,所以後面都帶一個分號作為命令結束符)格式:grant select on 資料庫.* to 用戶名@登錄主機 identified by \"密碼\"例1、增加一個用戶test1密碼為abc,讓他可以在任何主機上登錄,並對所有資料庫有查詢、插入、修改、刪除的許可權。首先用以root用戶連入MySQL,然後鍵入以下命令:
grant select,insert,update,
delete on *.* to test1@\"%\" Identified by \"abc\";但例1增加的用戶是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一台電腦上登錄你的MySQL資料庫並對你的數據可以為所欲為了,解決辦法見例2。
例2、增加一個用戶test2密碼為abc,讓他只可以在localhost上登錄,並可以對資料庫mydb進行查詢、插入、修改、刪除的操作 (localhost指本地主機,即MySQL資料庫所在的那台主機),這樣用戶即使用知道test2的密碼,他也無法從internet上直接訪問數據 庫,只能通過MySQL主機上的web頁來訪問。
grant select,insert,update,
delete on mydb.* to test2@localhost identified by \"abc\";如果你不想test2有密碼,可以再打一個命令將密碼消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by \"\";用新增的用戶如果登錄不了MySQL,
在登錄時用如下命令:mysql -u user_1 -p-h 192.168.113.50(-h後跟的是要登錄主機的ip地址)六、啟動與停止
6.1、啟動
MySQL安裝完成後啟動文件mysql在/etc/init.d目錄下,在需要啟動時運行下面命令即可。
[root@test1 init.d]# /etc/init.d/mysql start6.2、停止
/usr/bin/mysqladmin -u root -p shutdown
6.3、自動啟動
6.3.1、察看mysql是否在自動啟動列表中
[root@test1 local]#/sbin/chkconfig –list6.3.2、把MySQL添加到你系統的啟動服務組裡面去[root@test1 local]#/sbin/chkconfig– addmysql6.3.3、把MySQL從啟動服務組裡面刪除。
[root@test1 local]#/sbin/chkconfig– delmysql七、更改MySQL目錄
MySQL默認的數據文件存儲目錄為/var/lib/mysql。
假如要把目錄移到/home/data下需要進行下面幾步:
7.1、home目錄下建立data目錄
cd /home mkdir data
7.2、把MySQL服務進程停掉:
mysqladmin -u root -p shutdown
7.3、把/var/lib/mysql整個目錄移到/home/datamv /var/lib/mysql/home/data/
這樣就把MySQL的數據文件移動到了/home/data/mysql下7.4、找到my.cnf配置文件
如果/etc/目錄下沒有my.cnf配置文件,請到/usr/share/mysql/下找到*.cnf文件,拷貝其中一個到/etc/並改名為my.cnf)中。
命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf/etc/my.cnf7.5、編輯MySQL的配置文件/etc/my.cnf
為保證MySQL能夠正常工作,需要指明mysql.sock文件的產生位置。
修改socket=/var/lib/mysql/mysql.sock一行中等號右邊的值為:/home/mysql/mysql.sock 。
操作如下:
vi my.cnf
(用vi工具編輯my.cnf文件,找到下列數據修改之)# The MySQL server [mysqld]
port= 3306
#socket = /var/lib/mysql/mysql.sock(原內容,為了更穩妥用「#」注釋此行)socket = /home/data/mysql/mysql.sock(加上此行)7.6、修改MySQL啟動腳本/etc/rc.d/init.d/mysql最後,需要修改MySQL啟動腳本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等號右邊的路徑改成你現在的實際存放路徑:home/data/mysql。
[root@test1 etc]# vi/etc/rc.d/init.d/mysql#datadir=/var/lib/mysql(注釋此行)datadir=/home/data/mysql (加上此行)7.7、重新啟動MySQL服務
/etc/rc.d/init.d/mysqlstart
或用reboot命令重啟Linux
如果工作正常移動就成功了,否則對照前面的7步再檢查一下。
八、MySQL的常用操作
注意:MySQL中每個命令後都要以分號;結尾。
8.1、MySQL常用操作命令
8.1.1、顯示資料庫列表:
show databases;
剛開始時才兩個資料庫:mysql和test。MySQL庫很重要它裡面有MYSQL的系統信息,我們改密碼和新增用戶,實際上就是用這個庫進行操作。
8.1.2、顯示庫中的數據表:
use mysql; //打開庫,學過FOXBASE的一定不會陌生吧show tables;
8.1.3、顯示數據表的結構:
describe 表名;
8.1.4、建庫:
create database 庫名;
8.1.5、建表:
use 庫名;
create table 表名 (欄位設定列表);
8.1.6、刪庫和刪表:
drop database 庫名;
drop table 表名;
8.1.7、將表中記錄清空:
delete from 表名;
8.1.8、顯示表中的記錄:
select * from 表名;
8.1.9、增加記錄
例如:增加幾條相關紀錄。
mysql> insert into name values('','張三','男','1971-10-01');mysql> insert into name values('','白雲','女','1972-05-20');可用select命令來驗證結果。
mysql> select * from name;
+----+------+------+------------+
| id | xm | xb | csny |
+----+------+------+------------+
|1 | 張三 | 男 | 1971-10-01 |
|2 | 白雲 | 女 | 1972-05-20 |
+----+------+------+------------+
8.1.10、修改紀錄
例如:將張三的出生年月改為1971-01-10
mysql> update name set csny='1971-01-10' where xm='張三';8.1.11、刪除紀錄
例如:刪除張三的紀錄。
mysql> delete from name where xm='張三';
8.2、一個建庫和建表以及插入數據的實例
drop database if exists school; //如果存在SCHOOL則刪除create database school; //建立庫SCHOOL
use school; //打開庫SCHOOL
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,name char(10) not null,
address varchar(50) default 』深圳』,
year date
); //建表結束
//以下為插入欄位
insert into teacher values(』』,』glchengang』,』深圳一中』,』1976-10-10』);insert into teacher values(』』,』jack』,』深圳一中』,』1975-12-23』);註:在建表中(1)將ID設為長度為3的數字欄位:int(3)並讓它每個記錄自動加一:auto_increment並不能為空:not null而且讓他成為主欄位primary key(2)將NAME設為長度為10的字元欄位(3)將ADDRESS設為長度50的字元欄位,而且預設值為深圳。varchar和char有什麼區別 呢,只有等以後的文章再說了。(4)將YEAR設為日期欄位。
如果你在MySQL提示符鍵入上面的命令也可以,但不方便調試。你可以將以上命令原樣寫入一個文本文件中假設為school.sql,然後復制到c:\\下,並在DOS狀態進入目錄\\mysql\\bin,然後鍵入以下命令:
mysql -uroot -p密碼 < c:\\school.sql
如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經調試,你只要將//的注釋去掉即可使用)。
九 、修改資料庫結構
9.1、欄位操作
9.1.1、增加欄位
alter table dbname add column <欄位名><欄位選項>
9.1.2、修改欄位
alter table dbname change <舊欄位名> <新欄位名><選項>
9.1.3、刪除欄位
alter table dbname drop column <欄位名>
十、數據導出
數據導出主要有以下幾種方法:
使用select into outfile "filename"語句
使用mysqlmp實用程序
10.1、使用select into outfile "filename"語句可以在mysql的命令行下或在php程序中執行它。我下面以在mysql命令行下為 例。在php中使用時,將其改成相應的查詢進行處理即可。不過在使用這個命令時,要求用戶擁有file的許可權。如我們有一個庫為phptest,其中有一 個表為driver。現在要把driver卸成文件。執行命令:
mysql> use phptest;
Database Changed
mysql> select * from driver into outfile "a.txt";Query OK, 22 rows affected (0.05 sec)
上面就可以完成將表driver從資料庫中卸到a.txt文件中。注意文件名要加單引 號。那麼這個文件在哪呢?在mysql目錄下有一個data目錄,它即是資料庫文件所放的地方。每個庫在單獨佔一個子目錄,所以phptest的目錄為 c:\mysql\data\phptest(注意:我的mysql安裝在c:\mysql下)。好,現在我們進去,a.txt就是它。打開這個文件,可 能是:
1 Mika Hakinnen 1
2 David Coulthard 1
3 Michael Schumacher 2
4 Rubens Barrichello 2
...
可能還有很多記錄。每個欄位之間是用製表符分開的(\t)。那麼我們可以修改輸出文件 名的目錄,以便放在指定的位置。如"a.txt"可以改成"./a.txt"或"/a.txt"。其中"./a.txt"放在c:\mysql\data 目錄下了,而"/a.txt"文件則放在c:\目錄下了。所以select命令認為的當前目錄是資料庫的存放目錄,這里是c:\mysql\data。
使用select命令還可以指定卸出文件時,欄位之間的分隔字元,轉義字元,包括字元,及記錄行分隔字元。列在下面:
FIELDS
TERMINATED BY "\t"
[OPTIONALLY] ENCLOSED BY ""
ESCAPED BY ""
LINES
TERMINATED BY "\n"
TERMINATED 表示欄位分隔
[OPTIONALLY] ENCLOSED 表示欄位用什麼字元包括起來,如果使用了OPTIONALLY則只有CHAR和VERCHAR被包括ESCAPED 表示當需要轉義時用什麼作為轉義字元LINES TERMINATED 表示每行記錄之間用什麼分隔上面列的是預設值,而且這些項都是可選的,不選則使用預設值。可以根據需要進行修改。給出一個例子如下:
mysql> select * from driver into outfile "a.txt" fields terminated by ","enclosed by """;
Query OK, 22 rows affected (0.06 sec)
結果可能如下:
"1","Mika","Hakinnen","1"
"2","David","Coulthard","1"
"3","Michael","Schumacher","2"
"4","Rubens","Barrichello","2"
...
可以看到每個欄位都用","進行了分隔,且每個欄位都用"""包括了起來。注意,行記錄分隔符可以是一個字元串,請大家自行測試。不過,如果輸出文件在指定目錄下如果存在的話就會報錯,先刪除再測試即可。
10.2、使用mysqlmp實用程序
從上面的select方法可以看出,輸出的文件只有數據,而沒有表結構。而且,一次只 能處理一個表,要處理多個表則不是很容易的。不過可以將select命令寫入一個sql 文件(復制文本應該是很容易的吧),然後在命令行下執行即可:mysql 庫名先來個最簡單的吧:
mysqlmp phptest > a.sql
可能結果如下:
# MySQL mp 7.1
#
# Host: localhost Database: phptest
#--------------------------------------------------------# Server version 3.22.32-shareware-debug
#
# Table structure for table "driver"
#
CREATE TABLE driver (
drv_id int(11) DEFAULT "0" NOT NULL auto_increment,drv_forename varchar(15) DEFAULT "" NOT NULL,drv_surname varchar(25) DEFAULT "" NOT NULL,drv_team int(11) DEFAULT "0" NOT NULL,
PRIMARY KEY (drv_id)
);
#
# Dumping data for table "driver"
#
INSERT INTO driver VALUES (1,"Mika","Hakinnen",1);INSERT INTO driver VALUES (2,"David","Coulthard",1);INSERT INTO driver VALUES (3,"Michael","Schumacher",2);INSERT INTO driver VALUES (4,"Rubens","Barrichello",2);...
如果有多表,則分別列在下面。可以看到這個文件是一個完整的sql文件,如果要將 其導入到其它的資料庫中可以通過命令行方式,很方便:mysql phptest < a.sql。如果將數據從本地傳到伺服器上,則可以將這個文件上傳,然後在伺服器通過命令行方式裝入數據。
如果只想卸出建表指令,則命令如下:
mysqlmp -d phptest > a.sql
如果只想卸出插入數據的sql命令,而不需要建表命令,則命令如下:
mysqlmp -t phptest > a.sql
那麼如果我只想要數據,而不想要什麼sql命令時,應該如何操作呢?
mysqlmp -T./ phptest driver
其中,只有指定了-T參數才可以卸出純文本文件,表示卸出數據的目錄,./表示當前目 錄,即與mysqlmp同一目錄。如果不指定driver表,則將卸出整個資料庫的數據。每個表會生成兩個文件,一個為.sql文件,包含建表執行。 另一個為.txt文件,只包含數據,且沒有sql指令。
對卸出的數據文件,也可以同select方法一樣,指定欄位分隔符,包括字元,轉義欄位,行記錄分隔符。參數列在下面:
--fields-terminated-by= 欄位分隔符
--fields-enclosed-by= 欄位包括符
--fields-optionally-enclosed-by= 欄位包括符,只用在CHAR和VERCHAR欄位上--fields-escaped-by= 轉義字元
--lines-terminated-by= 行記錄分隔符
我想大家應該明白這些參數的意思了吧。一個例子如下:
mysqlmp -T./ --fields-terminated-by=, --fields-enclosed-by=" phptest driver輸出結果為:
"1","Mika","Hakinnen","1"
"2","David","Coulthard","1"
"3","Michael","Schumacher","2"
"4","Rubens","Barrichello","2"
...
請注意字元的使用。
10.3、小結
以上為使用select和mysqlmp實用程序來卸出文本的方法。select適合利用程序進行處理,而mysqlmp則為手工操作,同時提供強大的導出功能,並且可以處理整個庫,或庫中指定的多表。大家可以根據需求自行決定使用。
同時還有一些方法,如直接資料庫文件拷貝也可以,但是移動後的資料庫系統與原系統應一致才行。這里就不再提了。
十一、數據導入
同導出相類似,導入也有兩種方法:
使用LOAD DATA INFILE "filename"命令
使用mysqlimport實用程序
使用sql文件
由於前兩個處理與導出處理相似,只不過是它們的逆操作,故只給出幾種命令使用的例子,不再解釋了,大家可以自行查閱手冊。
11.1、使用load命令:
load data infile "driver.txt" into table driver fields terminated by ","enclosed by """;
11.2、使用mysqlimport實用程序:
mysqlimport --fields-terminated-by=, --fields-enclosed-by=" phptest driver.txt11.3、使用SQL文件
則可以使用由mysqlmp導出的sql文件,在命令行下執行mysql庫名。
首先要聲明一點,大部分情況下,修改MySQL是需要有mysql里的root許可權的,所以一般用戶無法更改密碼,除非請求管理員。
方法一
使用phpmyadmin,這是最簡單的了,修改mysql庫的user表,不過別忘了使用PASSWORD函數。
方法二
使用mysqladmin,這是前面聲明的一個特例。
mysqladmin -u root -p password mypasswd
輸入這個命令後,需要輸入root的原密碼,然後root的密碼將改為 mypasswd。把命令里的root改為你的用戶名,你就可以改你自己的密碼了。當然如果你的mysqladmin連接不上mysql server,或者你沒有辦法執行mysqladmin,那麼這種方法就是無效的。而且mysqladmin無法把密碼清空。
下面的方法都在mysql提示符下使用,且必須有mysql的root許可權:
Ⅸ Centos下用php連接資料庫出現問題
要安裝 php的 mysql擴展
Ⅹ Centos7和php7.0連不上mysql5.7求解決!!
連不上資料庫有一般的原因有:
一、防火牆設置不允許連接,這種情況PHP會提示網路錯誤,報錯很慢,要等很久才報錯;
二、是用戶名、密碼不對,或者MYSQL資料庫沒有指定該用戶的登錄主機為%,這中情況或提示訪問被拒絕,報錯很快。