- MySQL 特點?
下面總結(jié)了一下 MySQL 具備的特點。
1) 功能強大
MySQL 中提供了多種數(shù)據(jù)庫存儲引擎,各引擎各有所長,適用于不同的應(yīng)用場合,用戶可以選擇最合適的引擎以得到最高性能,可以處理每天訪問量超過數(shù)億的高強度的搜索 Web 站點。MySQL5 支持事務(wù)、視圖、存儲過程、觸發(fā)器等。
2) 支持跨平臺
MySQL 支持至少 20 種以上的開發(fā)平臺,包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。這使得在任何平臺下編寫的程序都可以進行移植,而不需要對程序做任何的修改。
3) 運行速度快
高速是 MySQL 的顯著特性。在 MySQL 中,使用了極快的 B 樹磁盤表(MyISAM)和索引壓縮;通過使用優(yōu)化的單掃描多連接,能夠極快地實現(xiàn)連接;SQL 函數(shù)使用高度優(yōu)化的類庫實現(xiàn),運行速度極快。
4) 支持面向?qū)ο?/h4>
PHP 支持混合編程方式。編程方式可分為純粹面向?qū)ο蟆⒓兇饷嫦蜻^程、面句對象與面向過程混合 3 種方式。
5) 安全性高
靈活和安全的權(quán)限與密碼系統(tǒng),允許基本主機的驗證。連接到服務(wù)器時,所有的密碼傳輸均采用加密形式,從而保證了密碼的安全。
6) 成本低
MySQL 數(shù)據(jù)庫是一種完全免費的產(chǎn)品,用戶可以直接通過網(wǎng)絡(luò)下載。
7) 支持各種開發(fā)語言
MySQL 為各種流行的程序設(shè)計語言提供支持,為它們提供了很多的 API 函數(shù),包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 語言等。
8) 數(shù)據(jù)庫存儲容量大
MySQL 數(shù)據(jù)庫的最大有效表尺寸通常是由操作系統(tǒng)對文件大小的限制決定的,而不是由 MySQL 內(nèi)部限制決定的。InnoDB 存儲引擎將 InnoDB 表保存在一個表空間內(nèi),該表空間可由數(shù)個文件創(chuàng)建,表空間的最大容量為 64TB,可以輕松處理擁有上千萬條記錄的大型數(shù)據(jù)庫。
9) 支持強大的內(nèi)置函數(shù)
PHP 中提供了大量內(nèi)置函數(shù),幾乎涵蓋了 Web 應(yīng)用開發(fā)中的所有功能。它內(nèi)置了數(shù)據(jù)庫連接、文件上傳等功能,MySQL 支持大量的擴展庫,如 MySQLi 等,可以為快速開發(fā) Web 應(yīng)用提供便利。
?
- 數(shù)據(jù)庫的應(yīng)用
數(shù)據(jù)庫是計算機應(yīng)用系統(tǒng)中的一種專門管理數(shù)據(jù)資源的系統(tǒng)。數(shù)據(jù)有多種形式,如文字、數(shù)碼、符號、圖形、圖像及聲音等,數(shù)據(jù)是所有計算機系統(tǒng)所要處理的對象。我們所熟知的一種處理辦法是制作文件,即將處理過程編成程序文件,將所涉及的數(shù)據(jù)按程序要求組成數(shù)據(jù)文件,再用程序來調(diào)用,數(shù)據(jù)文件與程序文件保持著一定的關(guān)系。
在計算機應(yīng)用迅速發(fā)展的情況下,這種文件式管理方法便顯出它的不足。比如,它使得數(shù)據(jù)通用性差、不便于移植、在不同文件中存儲大量重復(fù)信息、浪費存儲空間、更新不便等。
而數(shù)據(jù)庫系統(tǒng)便能解決上述問題。數(shù)據(jù)庫系統(tǒng)不從具體的應(yīng)用程序出發(fā),而是立足于數(shù)據(jù)本身的管理,它將所有數(shù)據(jù)保存在數(shù)據(jù)庫中,進行科學(xué)的組織,并借助于數(shù)據(jù)庫管理系統(tǒng),以它為中介,與各種應(yīng)用程序或應(yīng)用系統(tǒng)接口,使之能方便地使用數(shù)據(jù)庫中的數(shù)據(jù)。
其實簡單地說,數(shù)據(jù)庫就是一組經(jīng)過計算機整理后的數(shù)據(jù),存儲在一個或多個文件中,而管理這個數(shù)據(jù)庫的軟件就稱為數(shù)據(jù)庫管理系統(tǒng)。一般一個數(shù)據(jù)庫系統(tǒng)(Database System)
可以分為數(shù)據(jù)庫(Database)與數(shù)據(jù)管理系統(tǒng)(Database Management System,DBMS)兩個部分。主流的數(shù)據(jù)庫軟件有 Oracle、Informix、Sybase、SQL Server、PostgreSQL、MySQL、Access、FoxPro 和 Teradata 等等。
?
tar包 安裝Mysql
#安裝平臺 linux7 (x86,bit-64)
#官網(wǎng)鏈接下載
https://downloads.mysql.com/archives/community/
#創(chuàng)建目錄和用戶
[root@localhost /]# mkdir data
[root@localhost /]# groupadd mysql
[root@localhost /]# useradd mysql -g mysql
[root@localhost /]# chown mysql:mysql /data/mysql -R
#初始化密碼在下面輸入
#注: 記住密碼 修改密碼會用到
[root@localhost ~]# /data/mysql/bin/mysqld --initialize --basedir=/data/mysql --datadir=/data/mysql/data --user=mysql
2021-09-08T15:42:11.394700Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent ) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2021-09-08T15:42:11.394760Z 0 [System] [MY-013169] [Server] /data/mysql/bin/mysqld (mysqld 8.0.25) initializing of server in prog ress as process 2261
2021-09-08T15:42:11.400554Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-09-08T15:42:12.064115Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-09-08T15:42:12.739612Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: *>Vs>wSlu3qB
#創(chuàng)建日志存放文件
[root@localhost /]# mkdir /data/mysql/logs
[root@localhost /]# chown mysql:mysql /data/mysql -R
#創(chuàng)建conf文件
#注:文件路徑必須與主機一致 查看log日志修改配置文件
[root@localhost /]# cd /data/mysql/
[root@localhost mysql]# vim conf/my.cnf
[mysqld]
server-id = 1
skip-name-resolve
# basedir=/path 最好不要隨便設(shè)置,默認擴展plugin存放于/usr/lib64/mysql/以及/usr/share/mysql-8.0中,必要的話可以選擇在數(shù)據(jù)庫中更改路徑
# basedir=/data/mysql
datadir=/data/mysql/data
max_connections = 20000
open_files_limit = 65535
table_open_cache = 128
max_allowed_packet = 4M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 16M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
thread_cache_size = 8
#query_cache_size = 16M
#query_cache_limit = 2M
key_buffer_size = 4M
socket=/data/mysql/mysql.sock
log_timestamps=SYSTEM
# 二進制日志
log-bin=mysql8_log-bin
#binlog-format=MIXD
# 慢查詢?nèi)罩?,on開啟,query_time超時時間設(shè)置
slow-query-log=on
slow-query-log-file=/data/mysql/logs/mysqld.log
long_query_time=2
# error日志
log-error=/data/mysql/logs/mysqld.log
pid-file=/data/mysql/mysqld.pid
innodb_open_files = 600
innodb_buffer_pool_size = 64M
innodb_write_io_threads = 2
innodb_read_io_threads = 2
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_timeout=1
innodb_flush_log_at_trx_commit=2
innodb_log_buffer_size = 16M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
bulk_insert_buffer_size = 16M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
bulk_insert_buffer_size = 16M
[client]
loose-local-infile=1
[mysqldump]
quick
#啟動
[root@localhost /]# cd /data/mysql/bin/
[root@localhost bin]# ./mysql -uroot -p --socket=/data/mysql/mysql.sock
#連接
[root@localhost bin]# ./mysql -uroot -p --socket=/data/mysql/mysql.sock
#修改密碼
#注:mysql中必須以分號結(jié)尾
[root@localhost bin]# ./mysql -uroot -p --socket=/data/mysql/mysql.sock
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 13
Server version: 8.0.25
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
mysql>
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
Query OK, 0 rows affected (0.01 sec)
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set host='%' where user='root';
mysql> ALTER USER 'root'@'%' IDENTIFIED BY '123123';
?
本文摘自 :https://blog.51cto.com/u