目录
移动mysql解压后的文件到/usr/local下改名叫mysql
从cd /usr/local/mysql/bin/passwd.txt中获取临时密码(记住临时密码!后面登录要用)
复制support-files里的mysql.server文件到/etc/init.d/目录下叫mysqld
修改/etc/init.d/mysqld脚本文件里的datadir目录的值
将mysqld添加到linux系统里服务管理名单里并设置开机自启
检验上一步修改密码是否成功,如果有输出能看到mysql里的数据库,说明成功
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。因为将数据存入文件中的读写速度相对较慢,所以我们使用关系型数据库管理系统(RDBMS)来存储和管理大量的数据。
所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:
1.数据以表格的形式出现 2.每行为各种记录名称 3.每列为记录名称所对应的数据域 4.许多的行和列组成一张表单 5.若干的表单组成database
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL是开源的。
MySQL支持处理上千万条记录的大型数据库。
MySQL使用标准的 SQL 数据语言形式。
MySQL可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
MySQL对 PHP 有很好的支持,PHP 是很适合用于 Web 程序开发。
MySQL是支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
Linux系统:CentOS 7.9
MySQL版本:MySQL 5.7.37
安装方式:二进制安装
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
[root@sc-mysql ~]# yum install cmake ncurses-devel gcc gcc-c++ vim lsof bzip2 openssl-devel ncurses-compat-libs -y
[root@sc-mysql ~]# tar xf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
[root@sc-mysql ~]# mv mysql-5.7.37-linux-glibc2.12-x86_64 /usr/local/mysql
[root@sc-mysql mysql]# cd /usr/local/mysql/
[root@sc-mysql mysql]# ls
bin docs include lib LICENSE man README share support-files
[root@sc-mysql mysql]#
目录 | 目录内容 |
---|---|
bin | mysqld服务器、客户端和实用程序 |
docs | 信息格式的 MySQL 手册 |
man | Unix 手册页 |
include | 包含(头)文件 |
lib | 图书馆 |
share | 用于数据库安装的错误消息、字典和 SQL |
support-files | 其他支持文件 |
[root@sc-mysql mysql]# groupadd mysql
#mysql这个用户的shell 是/bin/false 属于mysql组
[root@sc-mysql mysql]# useradd -r -g mysql -s /bin/false mysql
[root@sc-mysql mysql]# service firewalld stop
[root@sc-mysql mysql]# systemctl disable firewalld
#临时关闭selinux
[root@sc-mysql mysql]# setenforce 0
#永久关闭selinux
[root@sc-mysql mysql]# sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config
[root@sc-mysql mysql]# mkdir /data/mysql -p
#修改/data/mysql目录的权限归mysql用户和mysql组所有,这样mysql用户可以对这个文件夹进行读写了
[root@sc-mysql mysql]# chown mysql:mysql /data/mysql/
#只是允许mysql这个用户和mysql组可以访问,其他人都不能访问
[root@sc-mysql mysql]# chmod 750 /data/mysql/
[root@sc-mysql bin]# cd /usr/local/mysql/bin/
[root@sc-mysql bin]# ls
innochecksum myisamlog mysqladmin mysql_config mysqld_multi mysql_embedded mysqlpump mysql_ssl_rsa_setup mysqlxtest resolveip
lz4_decompress myisampack mysqlbinlog mysql_config_editor mysqld_safe mysqlimport mysql_secure_installation mysqltest_embedded passwd.txt resolve_stack_dump
myisamchk my_print_defaults mysqlcheck mysqld mysqldump mysql_install_db mysqlshow mysql_tzinfo_to_sql perror zlib_decompress
myisam_ftdump mysql mysql_client_test_embedded mysqld-debug mysqldumpslow mysql_plugin mysqlslap mysql_upgrade replace
[root@sc-mysql bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql &>passwd.txt
[root@sc-mysql bin]# cat passwd.txt
2022-09-05T12:06:55.750015Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2022-09-05T12:06:56.031735Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-09-05T12:06:56.094120Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-09-05T12:06:56.179174Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 3c8c05da-2d13-11ed-bfb9-000c290baad1.
2022-09-05T12:06:56.180208Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-09-05T12:06:57.364784Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2022-09-05T12:06:57.364801Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2022-09-05T12:06:57.365730Z 0 [Warning] CA certificate ca.pem is self signed.
2022-09-05T12:06:57.761027Z 1 [Note] A temporary password is generated for root@localhost: >?ys5YoqT*eu
#root@localhost:后就是临时密码 >?ys5YoqT*eu
[root@sc-mysql bin]# ./mysql_ssl_rsa_setup --datadir=/data/mysql/
#临时修改PATH变量的值
[root@sc-mysql bin]# export PATH=/usr/local/mysql/bin/:$PATH
#重新启动linux系统后也生效,永久修改
[root@sc-mysql bin]# echo 'PATH=/usr/local/mysql/bin:$PATH' >>/root/.bashrc
[root@sc-mysql bin]# cp ../support-files/mysql.server /etc/init.d/mysqld
[root@sc-mysql bin]# sed -i '70c datadir=/data/mysql' /etc/init.d/mysqld
[root@sc-mysql bin]# cat >/etc/my.cnf <<EOF
[mysqld_safe]
[client]
socket=/data/mysql/mysql.sock
[mysqld]
socket=/data/mysql/mysql.sock
port = 3306 #MySQL端口号
open_files_limit = 8192
innodb_buffer_pool_size = 512M #缓存池大小
character-set-server=utf8
[mysql]
auto-rehash
prompt=\\u@\\d \\R:\\m mysql>
EOF
[root@sc-mysql bin]# ulimit -n 1000000
#设置开机启动的时候也配置生效
[root@sc-mysql bin]# echo "ulimit -n 1000000" >>/etc/rc.local
[root@sc-mysql bin]# chmod +x /etc/rc.d/rc.local
#将mysqld添加到linux系统里服务管理名单里
[root@sc-mysql bin]# chkconfig --add mysqld
#设置mysqld服务开机启动
[root@sc-mysql bin]# chkconfig mysqld on
[root@sc-mysql bin]# service mysqld start
[root@sc-mysql bin]# mysql -uroot -p'>?ys5YoqT*eu'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.37
Copyright (c) 2000, 2022, 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.
root@(none) 20:25 mysql>
root@(none) 21:50 mysql>set password='xz123456'; #修改MySQL数据库密码
Query OK, 0 rows affected (0.00 sec)
root@(none) 21:51 mysql>exit; #退出数据库
[root@sc-mysql bin]# mysql -uroot -p'xz123456'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.37 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, 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.
root@(none) 21:53 mysql>show databases; #查看数据库
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
root@(none) 21:53 mysql>
至此MySQL数据库就部署成功啦!