新聞中心
MySQL是一種廣泛使用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它是一種多用戶、多線程的數(shù)據(jù)庫軟件,可以用于處理不同種類和規(guī)模的數(shù)據(jù)。作為一個開源軟件,MySQL已經(jīng)被廣泛應(yīng)用于企業(yè)、互聯(lián)網(wǎng)和移動應(yīng)用等各種領(lǐng)域。

成都創(chuàng)新互聯(lián)公司是一家從事企業(yè)網(wǎng)站建設(shè)、成都做網(wǎng)站、成都網(wǎng)站建設(shè)、行業(yè)門戶網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)制作的專業(yè)的建站公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)上千。
在使用MySQL數(shù)據(jù)庫時,經(jīng)常需要配置數(shù)據(jù)庫默認(rèn)主機(jī)名,這可以讓我們在連接數(shù)據(jù)庫時省去輸入主機(jī)名的麻煩,提高數(shù)據(jù)庫訪問效率。那么,如何設(shè)置MySQL數(shù)據(jù)庫的默認(rèn)主機(jī)名呢?
一、MySQL的默認(rèn)主機(jī)名是什么?
在安裝MySQL之后,MySQL服務(wù)器會自動為每個安裝實(shí)例分配一個默認(rèn)主機(jī)名,該主機(jī)名通常為“l(fā)ocalhost”。當(dāng)我們通過命令行或其它工具訪問MySQL數(shù)據(jù)庫時,如果未指定主機(jī)名,則默認(rèn)使用“l(fā)ocalhost”作為主機(jī)名。
然而,并不是所有的MySQL安裝實(shí)例都使用“l(fā)ocalhost”作為默認(rèn)主機(jī)名,有些安裝實(shí)例可能會使用其它的默認(rèn)主機(jī)名,這需要我們在使用MySQL時進(jìn)行相應(yīng)的配置。
二、如何查看MySQL的默認(rèn)主機(jī)名?
在使用MySQL時,我們可以通過以下方法來查看MySQL的默認(rèn)主機(jī)名:
1.打開MySQL的命令行工具
在Windows系統(tǒng)中,打開命令提示符(CMD),輸入以下命令:
“`
mysql -u root -p
“`
其中,“-u root”表示使用root用戶登錄MySQL,而“-p”表示需要輸入MySQL的密碼。
在Linux或Mac系統(tǒng)中,打開終端,輸入以下命令:
“`
mysql -u root -p
“`
同樣,其中,“-u root”表示使用root用戶登錄MySQL,而“-p”表示需要輸入MySQL的密碼。
2.查看MySQL的默認(rèn)主機(jī)名
在打開MySQL命令行工具之后,輸入以下命令:
“`
SELECT @@hostname;
“`
該命令用于查詢MySQL的默認(rèn)主機(jī)名,如果返回的結(jié)果為“l(fā)ocalhost”,則表示當(dāng)前MySQL的默認(rèn)主機(jī)名為“l(fā)ocalhost”。
三、如何設(shè)置MySQL的默認(rèn)主機(jī)名?
如果MySQL的默認(rèn)主機(jī)名不是“l(fā)ocalhost”,則需要進(jìn)行相應(yīng)的配置。MySQL的默認(rèn)主機(jī)名設(shè)置方法如下:
1.打開MySQL配置文件
MySQL的配置文件通常為“my.cnf”或“my.ini”,該文件存儲了MySQL服務(wù)器的各種配置信息。我們可以通過以下方式來打開該文件:
在Windows系統(tǒng)中,使用記事本等文本編輯器打開“my.ini”文件,該文件一般位于“C:\Program Files\MySQL\MySQL Server X.X”目錄下。
在Linux或Mac系統(tǒng)中,使用vi、nano等編輯器打開“my.cnf”文件,該文件一般位于“/etc/mysql/”目錄下。
2.編輯MySQL配置文件
打開MySQL配置文件之后,找到以下內(nèi)容:
“`
[mysqld]
“`
在該行之下添加以下內(nèi)容:
“`
bind-address=127.0.0.1
“`
其中,“bind-address”用于指定MySQL服務(wù)器監(jiān)聽的IP地址,而“127.0.0.1”則表示只允許來自本地的連接。如果需要允許其它主機(jī)連接到MySQL服務(wù)器,則需要指定該主機(jī)的IP地址。
保存MySQL配置文件之后,重啟MySQL服務(wù)器。在重啟后,MySQL的默認(rèn)主機(jī)名就會生效。
四、MySQL默認(rèn)主機(jī)名的注意事項(xiàng)
在設(shè)置MySQL的默認(rèn)主機(jī)名時,需要注意以下幾個方面:
1.只有需要遠(yuǎn)程訪問MySQL時才需要設(shè)置默認(rèn)主機(jī)名,如果只在本地使用MySQL,則無需進(jìn)行該設(shè)置。
2.如果需要允許遠(yuǎn)程主機(jī)連接到MySQL服務(wù)器,則需要指定遠(yuǎn)程主機(jī)的IP地址。
3.設(shè)置MySQL的默認(rèn)主機(jī)名后,需要重啟MySQL服務(wù)器才能生效。
4.確保MySQL服務(wù)器已經(jīng)允許來自外部的連接,否則即使設(shè)置了默認(rèn)主機(jī)名也無法實(shí)現(xiàn)遠(yuǎn)程訪問。
以上就是關(guān)于MySQL數(shù)據(jù)庫如何設(shè)置默認(rèn)主機(jī)名的詳細(xì)介紹,希望能對大家了解和使用MySQL有所幫助。
相關(guān)問題拓展閱讀:
- 剛裝的mysql的默認(rèn)數(shù)據(jù)庫名、用戶名、密碼是什么?
- 如何用python連接mysql數(shù)據(jù)庫
剛裝的mysql的默認(rèn)數(shù)據(jù)庫名、用戶名、密碼是什么?
密碼應(yīng)該是在安裝的過程中你自己設(shè)置的
如果安裝的是集成環(huán)境的話 看說明文檔
用戶名是root密碼是你填寫的
如何用python連接mysql數(shù)據(jù)庫
1、和數(shù)據(jù)庫建立連接
2、執(zhí)行sql語句,接收返回值
3、關(guān)閉數(shù)據(jù)庫連接
1、MySQL數(shù)據(jù)庫要用MySQLdb模塊,但Python用來鏈接MySQL的第三方庫MySQLdb不支持Python3.x
特別說明:我在我的電腦上實(shí)驗(yàn)時,我的python是2.7.2版本,安裝對應(yīng)版本的MySQLdb之后直接可以運(yùn)行,并與數(shù)據(jù)庫連接成功,所以如果大家也像我一樣順利的話,下面的就不需要看了,直接跳過,看第2點(diǎn)如何執(zhí)行sql語句即可!如果安裝之后出現(xiàn)異常,可以參考一下下面的解決辦法。
連接的關(guān)鍵并配遲是安裝MySQLdb模塊要下載與Python相對應(yīng)的版本:
下載好后安裝,它會自動檢測到計(jì)算機(jī)Python的安裝路徑,并自動填寫模塊解壓路徑(我的是:D:\ProgramFiles\ActivePython 2.6.6.17\Lib\site-packages\)。
但解壓完成后并不能使用,還要修改MySQLdb模塊下的一些文件:
①.在MySQLdb目錄下(我的是:D:\ProgramFiles\ActivePython 2.6.6.17\Lib\site-packages\MySQLdb)找到__init__.py:
注釋第34、35行的from setsimport ImmutableSet、class DBAPISet(ImmutableSet):,在后面賣晌添加class DBAPISet(frozenset):
# from sets import ImmutableSet
# class DBAPISet(ImmutableSet):
class DBAPISet(frozenset):
②.打開converters.py:
注釋第37行的from sets import BaseSet, Set,將第45行的return Set()中的Set改為set;同樣將第129行的Set: Set2Str,中的Set改為set(不要修改Set2Str),到這里就修改完畢了
2.建立數(shù)據(jù)庫連接
import MySQLdb
conn=MySQLdb.connect(host=”localhost”,user=”root”,passwd=”sa”,db=”mytable”)
比較常用的參數(shù)包括
host: 連接的數(shù)據(jù)庫服務(wù)器主機(jī)名,默認(rèn)為本地主機(jī)(localhost)。
user:數(shù)據(jù)庫登陸名.默認(rèn)是當(dāng)前用戶.
passwd:數(shù)據(jù)庫登陸的秘密.默認(rèn)為空.
db:要使用的數(shù)據(jù)庫名.沒有默認(rèn)值.
port:MySQL服務(wù)使用的TCP端口.默認(rèn)是3306.
conn連接有兩個重要的方法commit【提交新增和修改】,rollback【撤銷新增或修改】
3、執(zhí)行數(shù)據(jù)庫操作
n=cursor.execute(sql,param)
我們要使用連接對象獲得一個cursor對象,接下來,我們會使用cursor提供的方法來進(jìn)行工作.
這些方法包括兩大類:1.執(zhí)行命令,2.接收返回值
cursor用來執(zhí)行命令的方法:
callproc(self, procname, args):用來執(zhí)行存儲過程,接收的參數(shù)為存儲過程名和參數(shù)列表,返回值為受影響的行數(shù)
execute(self, query, args):執(zhí)行單條sql語句,接收的參數(shù)為sql語句本身和使用的參數(shù)列表,返回值為受影響的行數(shù)
executemany(self, query, args):執(zhí)行單挑sql語句,但是重復(fù)執(zhí)行參數(shù)列表里的參數(shù),返回值為受影響的行數(shù)
nextset(self):移動到下一個結(jié)果集
cursor用來接收返回值的方法:
fetchall(self):接收全部的返回結(jié)果行.
fetchmany(self, size=None):接收size條返回結(jié)果行.如果size的值大于返回的結(jié)果行的數(shù)量,則會返回cursor.arraysize條數(shù)據(jù).
fetchone(self):返回一條結(jié)果行.
scroll(self, value, mode=’relative’):移動指針到某一行.如果mode=’relative’,則表示從當(dāng)前所在行絕李移動value條,如果mode=’absolute’,則表示從結(jié)果集的之一行移動value條.
下面的代碼是一個完整的例子.
#使用sql語句,這里要接收的參數(shù)都用%s占位符.要注意的是,無論你要插入的數(shù)據(jù)是什么類型,占位符永遠(yuǎn)都要用%s
sql=”insert into cdinfo values(%s,%s,%s,%s,%s)”
#param應(yīng)該為tuple或者list
param=(title,singer,imgurl,url,alpha)
#執(zhí)行,如果成功,n的值為1
n=cursor.execute(sql,param)
#再來執(zhí)行一個查詢的操作
cursor.execute(“select * from cdinfo”)
#我們使用了fetchall這個方法.這樣,cds里保存的將會是查詢返回的全部結(jié)果.每條結(jié)果都是一個tuple類型的數(shù)據(jù),這些tuple組成了一個tuple
cds=cursor.fetchall()
#因?yàn)槭莟uple,所以可以這樣使用結(jié)果集
print cds
#或者直接顯示出來,看看結(jié)果集的真實(shí)樣子
print cds
#如果需要批量的插入數(shù)據(jù),就這樣做
sql=”insert into cdinfo values(0,%s,%s,%s,%s,%s)”
#每個值的為一個tuple,整個參數(shù)集組成一個tuple,或者list
param=((title,singer,imgurl,url,alpha),(title2,singer2,imgurl2,url2,alpha2))
#使用executemany方法來批量的插入數(shù)據(jù).這真是一個很酷的方法!
n=cursor.executemany(sql,param)
需要注意的是(或者說是我感到奇怪的是),在執(zhí)行完插入或刪除或修改操作后,需要調(diào)用一下conn.commit()方法進(jìn)行提交.這樣,數(shù)據(jù)才會真正保存在數(shù)據(jù)庫中.我不清楚是否是我的mysql設(shè)置問題,總之,今天我在一開始使用的時候,如果不用commit,那數(shù)據(jù)就不會保留在數(shù)據(jù)庫中,但是,數(shù)據(jù)確實(shí)在數(shù)據(jù)庫呆過.因?yàn)樽詣泳幪栠M(jìn)行了累積,而且返回的受影響的行數(shù)并不為0.
4、關(guān)閉數(shù)據(jù)庫連接
需要分別的關(guān)閉指針對象和連接對象.他們有名字相同的方法
cursor.close()
conn.close()
5、
5 編碼(防止亂碼)
需要注意的點(diǎn):
1 Python文件設(shè)置編碼 utf-8 (文件前面加上 #encoding=utf-8)
2 MySQL數(shù)據(jù)庫charset=utf-8
3 Python連接MySQL是加上參數(shù) charset=utf8
4 設(shè)置Python的默認(rèn)編碼為 utf-8 (sys.setdefaultencoding(utf-8)
#encoding=utf-8
import sys
import MySQLdb
reload(sys)
sys.setdefaultencoding(‘utf-8’)
db=MySQLdb.connect(user=’root’,charset=’utf8′)
注:MySQL的配置文件設(shè)置也必須配置成utf8
6.模塊功能演示
#!/usr/bin/python
import MySQLdb
Con= MySQLdb.connect(host=’localhost’,user=’root’,passwd=’root’,db=’abc’)
cursor =con.cursor()
sql =”select * from myt”
cursor.execute(sql)
row=cursor.fetchone()
print row
cursor.close()
con.close()
執(zhí)行以下SQL語句獲取返回值:
//獲取連接的游標(biāo)
cursor=conn.cursor()
//查詢
sql = “select * from 【table】”
//新增
sql = “insert into 【table】(字段,字段) values(值,值)”
//修改
sql = “update 【table】 set 字段 =‘值’where 條件 “
//刪除
sql = “delete from 【table】where 條件”
cursor.execute(sql)
返回值
cur.execute(‘select * from tables’)
其返回值為SQL語句得到的行數(shù),如:2L,表示2行。
然后,可以從該對象的fetchone或fetchall方法得到行信息。
獲取行信息
指針對象的fetchone()方法,是每次得到一行的tuple返回值:
引用
>>> row=cur.fetchone()
>>> print row
(‘user1′, ’52c69e3ac4e69d3f2e’, 1000L, 1000L, ‘/home/FTP/user1’,”)
指針對象的fetchall()方法,可取出指針結(jié)果集中的所有行,返回的結(jié)果集一個元組(tuples):
引用
>>> cur.scroll(0,’absolute’)
>>> row=cur.fetchall()
>>> print row
((‘user1′, ’52c69e3ac4e69d3f2e’, 1000L, 1000L, ‘/home/FTP/user1’,”), (‘user2’, ‘7e58d63b60197ceb55a1c487989a3720′, 1000L, 1000L,’/home/FTP/user2’, None))
移動指針
當(dāng)使用fetchone()方法是,指針是會發(fā)生移動的。所以,若不重置指針,那么使用fetchall的信息將只會包含指針后面的行內(nèi)容。
手動移動指針使用:
cur.scroll(int,parm)
含義為:
引用
int:移動的行數(shù),整數(shù);在相對模式下,正數(shù)向下移動,負(fù)值表示向上移動。
parm:移動的模式,默認(rèn)是relative,相對模式;可接受absoulte,絕對模式。
修改數(shù)據(jù)
修改數(shù)據(jù),包括插入、更新、刪除。它們都是使用指針對象的execute()方法執(zhí)行:
cur.execute(“insert into table (row1, row2) values (‘111’, ‘222’)”)
cur.execute(“update table set row1 = ‘test’ where row2 = ‘row2’ “)
cur.execute(“delete from table where row1 = ‘row1’ “)
因單引號“’”用于SQL語句中的標(biāo)識,所以,python中的字符串需使用雙引號括住。
此外,也可以使用python的“格式化字符串”寫法,簡化命令,例如:
cur.execute(“update table set row1 = ‘%s’ where row2 = ‘%s’ “%(‘value1′,’value2’))
※請注意,’%s’的單引號是SQL語句的間隔符,’value1’的單引號是python的字符串間隔符,其含義是不同的。是否需要間隔符,以及使用雙引號還是單引號作為間隔,需根據(jù)其含義決定。例如,還有:
cur.execute(“update FTPUSERS set passwd=%s where userid=’%s’ “%(“md5(‘123′)”,’user2’))
這里,paswd=%s是因SQL的md5()函數(shù)是不需要單引號間隔的;”md5(‘123’)”是python的字符串中含有單引號,所以用雙引號括住。
提交修改
一般情況下,MySQLdb模塊會自動提交修改。但我們在更新數(shù)據(jù)后,手動運(yùn)行一次:
conn.commit()
關(guān)閉數(shù)據(jù)庫連接
需要分別的關(guān)閉指針對象和連接對象.他們有名字相同的方法
cursor.close()
conn.close()
在 Python 語言環(huán)境下我們這樣連接數(shù)據(jù)庫。
In : from mysql import connector
In : cnx = connector.connect(host=”172.16.192.100″,port=3306,user=”appuser”,password=”xxxxxx”)
但是連接數(shù)據(jù)庫的背后發(fā)生了什么呢?
答案
當(dāng)我們通過驅(qū)動程序(mysql-connector-python,pymysql)連接 MySQL 服務(wù)端的時候,就是把連接參數(shù)傳遞給驅(qū)動程序,驅(qū)動程序再根據(jù)參數(shù)會發(fā)起到 MySQL 服務(wù)端的 TCP 連接。當(dāng) TCP 連接建立之后驅(qū)動程序與服務(wù)端之間會按特定的格式和次序交換數(shù)據(jù)包,數(shù)據(jù)包的格式和發(fā)送次序由 MySQL 協(xié)議 規(guī)定。MySQL 協(xié)議: MySQL 服務(wù)端與驅(qū)動程序之間,按如下的次序發(fā)送了這些包。
MySQL 服務(wù)凳塵端向客戶端發(fā)送一個握手包,包里記錄了 MySQL-Server 的版本,默認(rèn)的授權(quán)插件,密碼鹽值(auth-data)。
2. MySQL 客戶端發(fā)出 ssl 連接請求包(如果有必要的話)。
3. MySQL 客戶端發(fā)出握手包的響應(yīng)包,這個包時記錄了用戶名,密碼加密后的串,客戶端御漏屬性,等等其它信息。
數(shù)據(jù)庫默認(rèn)主機(jī)名的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于數(shù)據(jù)庫默認(rèn)主機(jī)名,MySQL數(shù)據(jù)庫如何設(shè)置默認(rèn)主機(jī)名?,剛裝的mysql的默認(rèn)數(shù)據(jù)庫名、用戶名、密碼是什么?,如何用python連接mysql數(shù)據(jù)庫的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)建站主營:成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動網(wǎng)站開發(fā)制作等網(wǎng)站服務(wù)。
當(dāng)前題目:MySQL數(shù)據(jù)庫如何設(shè)置默認(rèn)主機(jī)名?(數(shù)據(jù)庫默認(rèn)主機(jī)名)
鏈接分享:http://www.dlmjj.cn/article/cdihhhc.html


咨詢
建站咨詢
