當(dāng)前位置:首頁 > IT技術(shù) > 數(shù)據(jù)庫 > 正文

Mysql數(shù)據(jù)庫安裝與簡介
2021-09-09 09:54:50

  • 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/Mysql數(shù)據(jù)庫安裝與簡介_mysql安裝簡介

#創(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

開通會員,享受整站包年服務(wù)立即開通 >