MySQL 组成
客户端程序:
- mysql: 交互式的CLI工具
- mysqladmin:基于mysql协议管理mysqld
- mysqlimport:数据导入工具
- MyISAM:存储引擎的管理工具
- myisamchk:检查MyISAM库
- myisampack:打包MyISAM表,只读
服务器端程序:
- mysqld_safe
- mysqld
- mysqld_multi 多实例
方法一:编译安装
以编译安装5.6版本为例。
先将安装包传到/opt/目录下。
1. #安装环境依赖包 [root@yuji ~]# yum -y install gcc gcc-c++ make ncurses ncurses-devel bison cmake libaio-devel #各程序作用解释如下: gcc #C语言的编译器 gcc-c++ #C++的编译器 ncurses #字符终端下图形互动功能的动态库 ncurses-devel #ncurses开发包 bison #语法分析器 cmake #mysql需要用cmake编译安装 libaio-devel #支持同步I/O的软件包 2. #创建mysql用户并加入到mysql组,创建mysql的安装路径 [root@yuji ~]# useradd -s /sbin/nologin mysql [root@yuji ~]# mkdir -p /usr/local/mysql 3. #解压mysql安装包,配置软件模块 [root@yuji ~]# cd /opt/ [root@yuji opt]# tar zxf mysql-5.6.36.tar.gz [root@yuji opt]# cd mysql-5.6.36/ ###配置软件模块,cmake自定义配置### [root@yuji mysql-5.6.36]# cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定mysql的安装路径 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文件)的存储路径 -DDEFAULT_CHARSET=utf8 \ #指定默认使用的字符集编码,如 utf8 -DDEFAULT_COLLATION=utf8_general_ci \ #指定默认使用的字符集校对规则 -DWITH_EXTRA_CHARSETS=all \ #扩展性的字符集,支持其他字符集编码 -DWITH_MYISAM_STORAGE_ENGINE=1 \ #开启各种功能的存储引擎机 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安装INNOBASE存储引擎 -DWITH_MEMORY_STORAGE_ENGINE=1 \ #安装MEMORY存储引擎 -DWITH_READLINE=1 \ #支持readline程序平台,读取数据按行读取,一行是一个对象 -DENABLED_LOCAL_INFILE=1 \ #本地写入文件,方便导入导出 -DMYSQL_DATADIR=/home/mysql \ #指定数据库的家目录,数据库文件的存储路径 -DMYSQL_USER=mysql \ #指定管理用户 -DMYSQL_TCP_PORT=3306 #指定端口号 4. #编译安装 [root@yuji mysql-5.6.36]# make && make install -j2 #开2核编译安装 ——————如果报错,需要清空缓存文件后重新编译------- find -name CMakeCache.txt rm -f ./CMakeCache.txt ------------------------------------------- 5. #将配置文件拷贝到/etc/目录下,并改名为my.cnf [root@yuji mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf 6.#添加mysqld系统服务,将mysql添加进系统服务管理中 [root@yuji mysql-5.6.36]# cp support-files/mysql.server /etc/init.d/mysqld [root@yuji mysql-5.6.36]# chmod 755 /etc/init.d/mysqld [root@yuji mysql-5.6.36]# chkconfig --add /etc/init.d/mysqld [root@yuji mysql-5.6.36]# chkconfig mysqld --level 35 on #在3和5运行级别下启动 7. #设置环境变量,申明/宣告mysql命令,便于系统识别 [root@yuji mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile [root@yuji mysql-5.6.36]# source /etc/profile //刷新文件,使立即生效 [root@yuji mysql-5.6.36]# echo $PATH 8. #更改mysql安装目录和配置文件的属主属组 [root@yuji mysql-5.6.36]# chown -R mysql:mysql /usr/local/mysql/ [root@yuji mysql-5.6.36]# chown mysql:mysql /etc/my.cnf 9. #初始化初始化数据库 [root@yuji mysql-5.6.36]# /usr/local/mysql/scripts/mysql_install_db \ --user=mysql \ #指定管理用户 --ldata=/var/lib/mysql \ #与--datadir同义 --basedir=/usr/local/mysql \ #指定数据库的安装目录 --datadir=/home/mysql #指定数据库文件的存储路径 10. #修改系统服务的脚本文件 [root@yuji mysql-5.6.36]# ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock //做一个软链接 [root@yuji mysql-5.6.36]# vim /etc/init.d/mysqld //修改脚本文件 ##修改46,47行 basedir=/usr/local/mysql datadir=/home/mysql 11. #启动mysql [root@yuji mysql-5.6.36]# service mysqld start [root@yuji mysql-5.6.36]# ss -ntap|grep "3306" 12. #登录及登出mysql [root@yuji mysql-5.6.36]# mysql #登录mysql ##授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限。 mysql> grant all privileges on *.* to 'root'@'%' identified by 'abc123'; #登出mysql mysql> exit Bye 复制代码
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
方法二:yum安装
以安装5.7版本为例。
1. #创建mysql安装包的在线源 cd /etc/yum.repos.d/ vim mysql.repo [mysql] name=mysql5.7 baseurl=https://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql-5.7-community-el7-x86_64/ gpgcheck=0 2. #安装服务mysql-community-server yum -y install mysql-community-server 3. #启动服务 systemctl start mysqld ss -ntap |grep 3306 4. #此时无法使用mysql命令直接登入数据库。需要查看本地root用户的默认密码,使用密码登录。 grep password /var/log/mysqld.log #查看默认密码 mysql -u root -p'34/Jeoiq0fZb' #使用密码登录,特殊符号用单引号引起来 5. #登入数据库后必须修改密码。 mysql> alter user root@'localhost' identified by 'Yuji18@2022'; #为保证安全,密码的复杂性要足够,需要包含英文字母大小写、数字和特殊字符。 #可以使用"\h;"查看帮助 复制代码
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
网络异常,图片无法展示
|
降低mysql密码复杂度的方法
# 进入数据库 mysql -u root -p # 验证密码混合情况计数 set global validate_password_mixed_case_count=0; # 全局验证密码中数字的数量 set global validate_password_number_count=3; # 全局验证密码中特殊字符计数 set global validate_password_special_char_count=0; #全局验证密码长度 set global validate_password_length=3;