安装MySQL

183 阅读4分钟

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
复制代码

1.png

2-1.png

3.png

4.png

5.png

6.png

7.png

8.png

9.png

10.png

11.png

12.png

13.png

方法二: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;"查看帮助
复制代码

1.png

2.png

3.png

4.png

5.png

6.png

降低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;

MySQL数据库自动补全命令的三种方式

方式一:临时使用自动补全功能

mysql -u root -p --auto-rehash

方式二:永久使用自动补全功能

vi /etc/my.cnf
[mysql]
auto-rehash

方式三:使用软件mycli实现自动补全功能

yum -y install epel-release
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel gcc

wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz

mkdir ~/.pip/

cat > ~/.pip/pip.conf <<EOF
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com
EOF


yum -y install libffi-devel zlib* python-devel openssl-devel
tar -zxvf Python-3.9.0.tgz
cd Python-3.9.0/
./configure --prefix=/usr/local/python --with-ssl
make && make install 

ln -s /usr/local/python/bin/python3 /usr/bin/

echo 'export PATH=/usr/local/python/bin:$PATH' >> /etc/profile	
source /etc/profile

pip3 install mycli

mycli -u root -p <密码>