Python Day40 初識數據庫
阿新 • • 發佈:2017-10-19
host sch python 對數 nts latin 自啟動 maria 下載
一、數據庫服務器、數據管理系統、數據庫、表與記錄的關系
記錄:多個字段的信息組成一條記錄,即文件中的一行內容
表:student,scholl,class_list(即文件)
數據庫:oldboy_stu(即文件夾)
數據庫管理系統:如mysql(是一個軟件)
數據庫服務器:一臺計算機(對內存要求比較高)
總結:
數據庫服務器---運行--->數據庫管理軟件
數據庫管理軟件--->管理--->數據庫
數據庫---組織--->表,即文件夾---組織--->文件
表---存放--->多條記錄,即文件---存放--->多行內容
二、mysql軟件基本管理
1. 啟動查看
[root@egon ~]# systemctl start mariadb #啟動 [root@egon ~]# systemctl enable mariadb #設置開機自啟動 Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service. [root@egon ~]# ps aux |grep mysqld |grep -v grep #查看進程,mysqld_safe為啟動mysql的腳本文件,內部調用mysqld命令mysql 3329 0.0 0.0 113252 1592 ? Ss 16:19 0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr mysql 3488 0.0 2.3 839276 90380 ? Sl 16:19 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock [root@egon~]# netstat -an |grep 3306 #查看端口 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN [root@egon ~]# ll -d /var/lib/mysql #權限不對,啟動不成功,註意user和group drwxr-xr-x 5 mysql mysql 4096 Jul 20 16:28 /var/lib/mysql
2. 登錄,設置密碼
初始狀態下,管理員root,密碼為空,默認只允許從本機登錄localhost 設置密碼 [root@egon ~]# mysqladmin -uroot password "123" 設置初始密碼 由於原密碼為空,因此-p可以不用 [root@egon ~]# mysqladmin -uroot -p"123" password "456" 修改mysql密碼,因為已經有密碼了,所以必須輸入原密碼才能設置新密碼 命令格式: [root@egon ~]# mysql -h172.31.0.2 -uroot -p456 [root@egon ~]# mysql -uroot -p [root@egon ~]# mysql 以root用戶登錄本機,密碼為空
3. 忘記密碼
方法一:刪除授權庫mysql,重新初始化
[root@egon ~]# rm -rf /var/lib/mysql/mysql #所有授權信息全部丟失!!! [root@egon ~]# systemctl restart mariadb [root@egon ~]# mysql
方法二:啟動時,跳過授權庫
[root@egon ~]# vim /etc/my.cnf #mysql主配置文件 [mysqld] skip-grant-table [root@egon ~]# systemctl restart mariadb [root@egon ~]# mysql MariaDB [(none)]> update mysql.user set password=password("123") where user="root" and host="localhost"; MariaDB [(none)]> flush privileges; MariaDB [(none)]> \q [root@egon ~]# #打開/etc/my.cnf去掉skip-grant-table,然後重啟 [root@egon ~]# systemctl restart mariadb [root@egon ~]# mysql -u root -p123 #以新密碼登錄
4. 在windows下,為mysql服務指定配置文件(強調:配置文件中的註釋可以有中文,但是配置項中不能出現中文)
#在mysql的解壓目錄下,新建my.ini,然後配置 #1. 在執行mysqld命令時,下列配置會生效,即mysql服務啟動時生效 [mysqld] ;skip-grant-tables port=3306 character_set_server=utf8 default-storage-engine=innodb innodb_file_per_table=1 #解壓的目錄 basedir=E:\mysql-5.7.19-winx64 #data目錄 datadir=E:\my_data #在mysqld --initialize時,就會將初始數據存入此處指定的目錄,在初始化之後,啟動mysql時,就會去這個目錄裏找數據 #2. 針對客戶端命令的全局配置,當mysql客戶端命令執行時,下列配置生效 [client] port=3306 default-character-set=utf8 user=root password=123 #3. 只針對mysql這個客戶端的配置,2中的是全局配置,而此處的則是只針對mysql這個命令的局部配置 [mysql] ;port=3306 ;default-character-set=utf8 user=egon password=4573 #!!!如果沒有[mysql],則用戶在執行mysql命令時的配置以[client]為準 my.ini
三、初識sql語句
有了mysql這個數據庫軟件,就可以將程序員從對數據的管理中解脫出來,專註於對程序邏輯的編寫
mysql服務端軟件即mysqld幫我們管理好文件夾以及文件,前提是作為使用者的我們,需要下載mysql的客戶端,或者其他模塊來連接到mysqld,然後使用mysql軟件規定的語法格式去提交自己命令,實現對文件夾或文件的管理。該語法即sql語句
#1. 操作文件夾 增:create database db1 charset utf8; 查:show databases; 改:alter database db1 charset latin1; 刪除: drop database db1; #2. 操作文件 先切換到文件夾下:use db1 增:create table t1(id int,name char); 查:show tables 改:alter table t1 modify name char(3); alter table t1 change name name1 char(2); 刪:drop table t1; #3. 操作文件中的內容/記錄 增:insert into t1 values(1,‘egon1‘),(2,‘egon2‘),(3,‘egon3‘); 查:select * from t1; 改:update t1 set name=‘sb‘ where id=2; 刪:delete from t1 where id=1; 清空表: delete from t1; #如果有自增id,新增的數據,仍然是以刪除前的最後一樣作為起始。 truncate table t1;數據量大,刪除速度比上一條快,且直接從零開始, auto_increment 表示:自增 primary key 表示:約束(不能重復且不能為空);加速查找
Python Day40 初識數據庫