2、MySQL安装

时间:2021-07-08 00:41:30
MySQL组成
客户端程序

mysql:交互式cli工具

mysqldump:备份工具

mysqladmin:基于mysql协议管理

mysqld mysqlimport:数据导入工具

myisamchk:加仓myisam库

myisampack:打包myisam表,只读

客户端命令

mysql> \h, help     帮助
mysql> \u,use 选择数据库
mysql> \s,status 查看当前状态
mysql> \!,system 执行shell命令

2、MySQL安装

2、MySQL安装

2、MySQL安装

2、MySQL安装

mysql命令

mysql [OPTIONS] [database]
-A, --no-auto-rehash 禁止补全
-u, --user= 用户名,默认为root
-h, --host= 服务器主机,默认为localhost
-p, --passowrd= 用户密码,建议使用-p,默认为空密码
-P, --port= 服务器端口
-S, --socket= 指定连接socket文件路径
-D, --database= 指定默认数据库
-C, --compress 启用压缩
-e “SQL“ 执行SQL命令
-V, --version 显示版本
-v --verbose 显示详细信息
--print-defaults 获取程序默认使用的配置

2、MySQL安装

2、MySQL安装

2、MySQL安装

2、MySQL安装

临时更改mysql提示符

export MYSQL_PS1="\\r:\\m:\\s(\\u@\\h) [\\d]>\\_"

2、MySQL安装

2、MySQL安装

2、MySQL安装

2、MySQL安装

mysqladmin命令

mysqladmin [OPTIONS] command command
#查看mysql服务是否正常,如果正常提示mysqld is alive
mysqladmin -uroot -pcentos ping
#关闭mysql服务,但mysqladmin命令无法开启
mysqladmin –uroot –pcentos shutdown
#创建数据库testdb
mysqladmin -uroot –pcentos create testdb
#删除数据库testdb
mysqladmin -uroot -pcentos drop testdb
#修改root密码
mysqladmin –uroot –pcentos password ‘magedu’
#日志滚动,生成新文件/var/lib/mysql/mariadb-bin.00000N
mysqladmin -uroot -pcentos flush-logs

2、MySQL安装

2、MySQL安装

2、MySQL安装

mysql使用模式

交互模式

脚本模式

mysql –uUSERNAME -pPASSWORD < /path/somefile.sql
cat /path/somefile.sql | mysql –uUSERNAME -pPASSWORD
mysql>source /path/from/somefile.sql
服务端程序

服务器端(mysqld):工作特性有多种配置方式

1、命令行选项:

2、配置文件:类ini格式,集中式的配置,能够为mysql的各应用程序提供配置信息

服务器端配置文件:

/etc/my.cnf #Global选项
/etc/mysql/my.cnf #Global选项
~/.my.cnf #User-specific 选项

[mysqld]
[mysqld_safe]
[mysqld_multi]
[mysql]
[mysqldump]
[server]
[client]
格式:parameter = value
说明:_和- 相同
1,ON,TRUE意义相同, 0,OFF,FALSE意义相同

2、MySQL安装

2、MySQL安装

设置数据库管理员root口令
禁止root远程登录
删除anonymous用户帐号
删除test数据库

socket地址

服务器监听的两种socket地址:

ip socket: 监听在tcp的3306端口,支持远程通信 ,侦听3306/tcp端口可以在绑定有一个或全部接口IP上
unix sock: 监听在sock文件上,仅支持本机通信, 如:/var/lib/mysql/mysql.sock)
说明:host为localhost 时自动使用unix sock

只侦听本地客户端, 所有客户端和服务器的交互都通过一个socket文件实现,socket的配置存放在/var/lib/mysql/mysql.sock) 可在/etc/my.cnf修改

vim /etc/my.cnf
[mysqld]
skip-networking=1

服务端命令

服务端命令需要使用;结尾

SELECT VERSION();

2、MySQL安装

2、MySQL安装

2、MySQL安装

用户账户

mysql用户账号由两部分组成:

'USERNAME'@'HOST‘

说明:

HOST限制此用户可通过哪些远程主机连接mysql服务器

支持使用通配符:

% 匹配任意长度的任意字符

172.16.0.0/255.255.0.0 或 172.16.%.%

_ 匹配任意单个字符


程序包管理器安装

2、MySQL安装

2、MySQL安装

2、MySQL安装

2、MySQL安装

二进制格式的程序包安装

二进制程序包安装固定了mysql的路径为/usr/local;固需要提前创建好目录

1、安装相关包

yum -y install libaio numactl-libs

2、创建mysql用户和组

2、MySQL安装

3、准备下载好的程序文件

安装程序包需要放在/usr/local下
#解压程序包
tar -xf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
#建立mysql的文件夹软链接,便于升级等变更操作
ln -s mysql-5.7.31-linux-glibc2.12-x86_64 mysql
chown -R root.root mysql/

2、MySQL安装

2、MySQL安装

4、准备环境变量

#执行命令能够查找到mysql相关命令
echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh

2、MySQL安装

5、准备配置文件

cp /etc/my.cnf{,.bak}
vim /etc/my.cnf

[mysqld]
datadir=/data/mysql #数据路径,需要提前创建好
socket=/data/mysql/mysql.sock
skip_name_resolve=1
log-error=/data/mysql/mysql.log 因使用mysql账户执行,写的log日志和pid需要mysql用户有权限的目录,否则导致无法启动
pid-file=/data/mysql/mysql.pid


[mysqld_safe]
log-error=/data/mysql/log/mysql.log #错误日志路径
pid-file=/var/run/mysql/mysql.pid
#建好数据目录,并赋予mysql权限
[14:51:47root@lgw-linux-07data]#mkdir mysql
[14:51:53root@lgw-linux-07data]#cd mysql
[14:51:57root@lgw-linux-07mysql]#ll
total 0
[14:51:58root@lgw-linux-07mysql]#cd ..
[14:52:20root@lgw-linux-07data]#chown mysql.mysql mysql
[14:52:32root@lgw-linux-07data]#
bind-address:指定MySQL服务器监听的IP地址。默认值为0.0.0.0,表示监听所有的IP地址。如果只想监听指定的IP地址,可以将其设置为该IP地址。
port:指定MySQL服务器监听的端口号。默认值为3306。
datadir:指定MySQL服务器的数据目录。
socket:指定MySQL服务器的套接字文件路径。默认值为/var/lib/mysql/mysql.sock。
pid_file:是MySQL配置文件中的一个参数,用于指定MySQL服务器的进程ID文件路径
max_connections:指定MySQL服务器允许的最大连接数。默认值为151。如果需要支持更多的连接,可以将其设置为更大的值。
character_set_server:指定MySQL服务器的字符集。默认值为utf8mb4。
collation-server:指定MySQL服务器的排序规则。默认值为utf8mb4_general_ci。
sql_mode:指定MySQL服务器的SQL模式。SQL模式控制MySQL如何处理不合法或警告的数据。可以设置为多个值,用逗号分隔。例如:sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES。
log_error:指定MySQL服务器的错误日志文件路径。默认值为/var/log/mysql/error.log。
slow_query_log:指定是否启用MySQL服务器的慢查询日志。默认值为OFF。如果想要记录慢查询,可以将其设置为ON,并指定慢查询日志文件的路径和阈值。例如:slow_query_log=ON,slow_query_log_file=/var/log/mysql/slow-query.log,long_query_time=2
innodb_buffer_pool_size:指定InnoDB存储引擎使用的缓冲池的大小。缓冲池是MySQL服务器用来缓存数据页的内存区域。默认值为128MB。可以根据服务器的内存大小来调整该参数的值。
innodb_log_file_size:指定InnoDB存储引擎的事务日志文件的大小。默认值为48MB。可以根据服务器的负载和性能要求来调整该参数的值。
skip_name_resolve:禁用MySQL服务器的DNS反解析功能,可以提高查询性能。默认值为OFF。
query_cache_size:指定MySQL服务器的查询缓存大小。默认值为0,表示禁用查询缓存。可以根据查询频率和结果集大小来调整该参数的值。
tmp_table_size:指定MySQL服务器使用的临时表的最大大小。默认值为16MB。可以根据服务器内存大小和负载来调整该参数的值。
join_buffer_size:指定MySQL服务器使用的连接缓存的大小。连接缓存用于存储连接表的行。默认值为256KB。可以根据表大小和负载来调整该参数的值。
thread_cache_size:指定MySQL服务器用于缓存线程的数量。默认值为8。可以根据服务器负载和连接频率来调整该参数的值。
max_allowed_packet:指定MySQL服务器允许的最大数据包大小。默认值为4MB。可以根据应用程序的需要来调整该参数的值。
key_buffer_size:指定MySQL服务器用于索引缓存的大小。索引缓存用于存储索引数据。默认值为128MB。可以根据表大小和查询频率来调整该参数的值。
table_open_cache:指定MySQL服务器用于缓存打开表的数量。默认值为2000。可以根据应用程序的需要来调整该参数的值。
read_buffer_size:指定MySQL服务器用于读取缓存的大小。读取缓存用于存储数据块。默认值为128KB。可以根据表大小和查询频率来调整该参数的值。

6、创建数据库文件

cd /usr/local/mysql/
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql #5.6使用mysql_install_db命令
mysqld --initialize --user=mysql --datadir=/data/mysql #5.7和8.0使用mysqld命令

2、MySQL安装

2、MySQL安装

7、准备启动脚本

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld #加入开机启动,centos8无法使用,但是可以放入/etc/rc.d/rc.local中,需要加权限
service mysqld start

8、测试验证

2、MySQL安装

在配置文件中增加sock

2、MySQL安装

2、MySQL安装

2、MySQL安装

编译安装MySQL(mariadb)

1、安装编译相关依赖包

yum -y install bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel gcc gcc-c++ cmake ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

2、准备用户和数据目录

useradd -r -s /sbin/nologin -d /data/mysql mysql

3、准备数据库目录

mkdir /data/mysql
chown mysql.mysql /data/mysql

4、下载并解压缩源码包

tar xvf mariadb-10.2.31.tar.gz

5、源码编译安装mariadb

cmake . \
-DCMAKE_INSTALL_PREFIX=/app/mysql \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc/ \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

make && make install
提示:如果出错,执行rm -f CMakeCache.txt

2、MySQL安装

6、准备环境变量和配置文件

echo 'PATH=/app/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh
cp /app/mysql/support-files/my-huge.cnf /etc/my.cnf

7、生成数据库文件

cd /app/mysql/
scripts/mysql_install_db --datadir=/data/mysql/ --user=mysq

2、MySQL安装

2、MySQL安装

8、准备启动脚本,并启动服务

cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
service mysqld start

2、MySQL安装

2、MySQL安装

9、安全初始化

mysql_secure_installation