MySQL三种安装方法(yum安装、编译安装、二进制安装) ...

打印 上一主题 下一主题

主题 982|帖子 982|积分 2956

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
牢记:一定要关闭防火墙和selinux!!!
服务器配置:2C4G即可,一台
一、yum安装方式

mysql的官方网站:www.mysql.com
中文官网:https://www.mysql.com/cn/
1、下载mysql的yum源
  1. [root@mysql-server ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
  2. //或者下载到本地再上传到服务器
复制代码
2、安装mysql的yum仓库
  1. [root@mysql-server ~]# yum -y install mysql80-community-release-el7-7.noarch.rpm
  2. [root@mysql-server ~]# yum -y install yum-utils    //安装yum工具包
复制代码
3、配置yum源
  1. [root@mysql-server ~]# vim /etc/yum.repos.d/mysql-community.repo   
  2. //修改如下
  3. [mysql57-community]
  4. name=MySQL 5.7 Community Server
  5. baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch
  6. enabled=1        #主要是把这里修改成1
  7. ...
  8. [mysql80-community]
  9. name=MySQL 8.0 Community Server
  10. baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch
  11. enabled=0        #主要是把这里修改成0
  12. ...
  13. //1表示开启,0表示关闭
  14. 或者
  15. [root@mysql-server ~]# yum-config-manager --enable mysql57-community        //将禁用的yum源库启用
  16. [root@mysql-server ~]# yum-config-manager --disable mysql80-community        //将启用的yum源库禁用
  17. //这种方式可以用在安装mysql脚本中,非常方便!!
复制代码
4、安装数据库
  1. [root@mysql-server ~]# yum install -y mysql-community-server
  2. //默认是安装最新版本的
  3. [root@mysql-server ~]# mysql -V
  4. mysql  Ver 14.14 Distrib 5.7.43, for Linux (x86_64) using  EditLine wrapper
  5. //启动服务
  6. [root@mysql-server ~]# systemctl start mysqld
  7. [root@mysql-server ~]# netstat -ntlp|grep mysql
  8. tcp6       0      0 :::3306                 :::*                    LISTEN      9948/mysqld
  9. //设置开机启动
  10. [root@mysql-server ~]# systemctl enable mysqld
复制代码
5、查找暗码
  1. //密码保存在日志文件中
  2. [root@mysql-server ~]# grep password /var/log/mysqld.log
  3. 2023-10-10T11:32:08.314934Z 1 [Note] A temporary password is generated for root@localhost: _!2g*Hb/:R.D
复制代码
6、修改暗码
两种方式:
第一种:登录数据库后操纵
  1. [root@mysql-server ~]# mysql -uroot -p'_!2g*Hb/:R.D'   //登录
  2. ...
  3. mysql> alter user 'root'@'localhost' identified by 'Jlting@123';
  4. ​Query OK, 0 rows affected (0.00 sec)
  5. mysql> exit
  6. Bye
  7. [root@mysql-server ~]# mysql -uroot -p'Jlting@123'
  8. ...
  9. mysql>
复制代码
第二种:免入库修改暗码,直接在命令行中修改
mysqladmin -u root -p’旧暗码’ password ‘新暗码’
注:修改暗码必须要有大小写、数字和特别符号,由于mysql默认有暗码战略。
假如忘记暗码了,可以在配置文件中加上一行配置,跳过暗码验证
  1. [root@localhost ~]# vim /etc/my.cnf
  2. [mysqld]    //在mysqld标签下
  3. skip-grant-tables   //添加这一行,跳过密码验证
  4. //意思就是跳过授权表,即可以跳过密码验证直接进入数据库
  5. //修改完配置文件需要重启服务才能生效
  6. [root@localhost ~]# systemctl restart mysqld
  7. [root@localhost ~]# mysql -uroot -p
  8. Enter password:        //直接回车
  9. ...
  10. mysql>
复制代码
二、编译安装方式

编译安装也叫源码安装
   与二进制(RPM)发行版本相比,假如我们选择了通过源代码进行安装,那么在安装过程中我们能够对MySQL所做的调整将会更多更机动一些。由于通过源代码编译我们可以:
a、针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码;
b、根据不同的软件平台环境调整相干的编译参数;
c、针对我们特定应用场景选择需要什么组件不需要什么组件;
d、根据我们的所需要存储的数据内容选择只安装我们需要的字符集(utf-8);
e、同一台主机上面可以安装多个MySQL;
    在源码安装给我们带来更大机动性的同时,同样也给我们带来了可能引入的隐患:
a、对编译参数的不敷了解造成编译参数利用不当可能使编译出来的二进制代码不敷稳固;
b、对自己的应用环境把握失误而利用的优化参数可能反而使体系性能更差;
c、尚有一个并不能称之为隐患的小题目就是源码编译安装将使安装部署过程更为复杂,所花费的时间更长;
  1、清算安装环境
  1. [root@mysql-server ~]# yum erase -y mariadb mariadb-server mariadb-libs mariadb-devel
  2. [root@mysql-server ~]# userdel -r mysql
  3. [root@mysql-server ~]# rm -rf /etc/my*
  4. [root@mysql-server ~]# rm -rf /var/lib/mysql
复制代码
2、创建mysql用户
  1. [root@mysql-server ~]# useradd -r mysql -M -s /bin/false
复制代码
  参数表明
-r 参数表示创建体系用户。体系用户不需要登录shell。并且会分配高的UID号 mysql 指定要创建的用户账号名。
-M 参数表示不创建用户主目次。
-s 参数指定用户的登录shell,/bin/false 表示不允许登录。
  3、从官网下载tar包
  1. [root@mysql-server ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz
  2. 或:
  3. [root@mysql-server ~]# wget  https://downloads.mysql.com/archives/get/p/23/file/mysql-boost-5.7.34.tar.gz
复制代码
4、安装编译工具
  1. [root@mysql-server ~]# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake
复制代码
5、创建mysql目次
  1. [root@mysql-server ~]# mkdir -p /usr/local/mysql
复制代码
6、解压
  1. [root@mysql-server ~]# tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/
复制代码
  注:假如安装的MySQL5.7及以上的版本,在编译安装之前需要安装boost,由于高版本mysql需要boots库的安装才可以正常运行。否则会报CMake
Error at cmake/boost.cmake:81错误
mysql-boost-5.7.27.tar.gz该安装包里面自带boost包
  7、编译安装
  1. //cd 解压的mysql目录开始编译安装
  2. [root@mysql-server ~]# cd /usr/local/mysql-5.7.27/
  3. [root@mysql-server mysql-5.7.27]# cmake . \
  4. -DWITH_BOOST=boost/boost_1_59_0/ \
  5. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  6. -DSYSCONFDIR=/etc \
  7. -DMYSQL_DATADIR=/usr/local/mysql/data \
  8. -DINSTALL_MANDIR=/usr/share/man \
  9. -DMYSQL_TCP_PORT=3306 \
  10. -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
  11. -DDEFAULT_CHARSET=utf8 \
  12. -DEXTRA_CHARSETS=all \
  13. -DDEFAULT_COLLATION=utf8_general_ci \
  14. -DWITH_READLINE=1 \
  15. -DWITH_SSL=system \
  16. -DWITH_EMBEDDED_SERVER=1 \
  17. -DENABLED_LOCAL_INFILE=1 \
  18. -DWITH_INNOBASE_STORAGE_ENGINE=1
  19. //提示:boost也可以使用如下指令自动下载,如果不下载boost压缩包,把下面的这一条添加到配置中第二行
  20. -DDOWNLOAD_BOOST=1/
  21. 参数详解:
  22. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \       //安装目录
  23. -DSYSCONFDIR=/etc \     //配置文件存放 (默认可以不安装配置文件)
  24. -DMYSQL_DATADIR=/usr/local/mysql/data \   //数据目录,错误日志文件也会在这个目录
  25. -DINSTALL_MANDIR=/usr/share/man \     //帮助文档
  26. -DMYSQL_TCP_PORT=3306 \     //默认端口
  27. -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \  //sock文件位置,用来做网络通信的,客户端连接服务器的时候用
  28. -DDEFAULT_CHARSET=utf8 \    //默认字符集。字符集的支持,可以调
  29. -DEXTRA_CHARSETS=all \      //扩展的字符集支持所有的
  30. -DDEFAULT_COLLATION=utf8_general_ci \  //默认字符集为utf8;默认校对规则为utf8_general_ci
  31. -DWITH_READLINE=1 \         //上下翻历史命令
  32. -DWITH_SSL=system \         //使用私钥和证书登陆(公钥)  可以加密。 适用与长连接。坏处:速度慢
  33. -DWITH_EMBEDDED_SERVER=1 \   //编译并启用嵌入式MySQL服务器
  34. -DENABLED_LOCAL_INFILE=1 \    //从本地倒入数据,不是备份和恢复。
  35. -DWITH_INNOBASE_STORAGE_ENGINE=1  //编译并启用InnoDB存储引擎,支持外键
  36. [root@mysql-server mysql-5.7.27]# make && make install
  37. 如果安装出错,想重新安装:不用重新解压,只需要删除安装目录中的缓存文件CMakeCache.txt
  38. 需要很长的时间!大约半小时!!
复制代码
8、初始化:初始化只需要初始化一次!
  1. [root@mysql-server mysql-5.7.27]# cd /usr/local/mysql
  2. [root@mysql-server mysql]# chown -R mysql.mysql .
  3. [root@mysql-server mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data   
  4. //--user=mysql:指定mysqld服务器运行的用户为mysql
  5. //--basedir=/usr/local/mysql:指定MySQL的安装目录  
  6. //--datadir=/usr/local/mysql/data:指定MySQL数据文件存放的目录
  7. 初始化完成之后,一定要记住提示最后的密码用于登陆或者修改密码!!!
  8. 编辑mysql配置文件
  9. [root@mysql-server ~]# vim /etc/my.cnf
  10. //将文件中所有内容注释掉在添加如下内容
  11. [client]
  12. port = 3306
  13. socket = /tmp/mysql.sock
  14. default-character-set = utf8
  15. [mysqld]
  16. port = 3306
  17. user = mysql
  18. basedir = /usr/local/mysql  //指定安装目录
  19. datadir = /usr/local/mysql/data  //指定数据存放目录
  20. socket = /tmp/mysql.sock
  21. character_set_server = utf8
  22. //参数详解:
  23. [client]
  24. #客户端默认连接端口
  25. port = 3306
  26. #用于本地连接的socket套接字
  27. socket = /tmp/mysql.sock
  28. #编码
  29. default-character-set = utf8
  30. [mysqld]
  31. #服务端口号,默认3306
  32. port = 3306
  33. #mysql启动用户
  34. user = mysql
  35. #mysql安装根目录
  36. basedir = /usr/local/mysql
  37. #mysql数据文件所在位置
  38. datadir = /usr/local/mysql/data
  39. #为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
  40. socket = /tmp/mysql.sock
  41. #数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
  42. character_set_server = utf8
复制代码
9、启动mysql
  1. [root@mysql-server ~]# cd /usr/local/mysql
  2. [root@mysql-server mysql]# ./bin/mysqld_safe --user=mysql &
  3. //mysqld_safe脚本的作用是:
  4.     先检查一些参数
  5.     然后使用--user指定的用户来启动mysqld服务
  6.     并监控mysqld服务,一旦mysqld宕机就会自动重新启动
  7. //查看端口
  8. [root@mysql-server mysql]# netstat -ntlp|grep 3306
  9. tcp6       0      0 :::3306                 :::*                    LISTEN      22226/mysqld
复制代码
10、登录mysql
  1. [root@mysql-server mysql]# /usr/local/mysql/bin/mysql -uroot -p'zSRB*h)z+58o'      
  2. //一定要有引号,单引和双引都可以!!!因为有一些特殊字符需要被定义为一个整体的字符串
  3. //不加引号的结果:
  4. [root@mysql-server mysql]# /usr/local/mysql/bin/mysql -uroot -pzSRB*h)z+58o
  5. -bash: 未预期的符号 `)' 附近有语法错误
  6. //登录后的界面
  7. mysql: [Warning] Using a password on the command line interface can be insecure.
  8. Welcome to the MySQL monitor.  Commands end with ; or \g.
  9. Your MySQL connection id is 2
  10. Server version: 5.7.27  #数据库版本号
  11. Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
  12. Oracle is a registered trademark of Oracle Corporation and/or its
  13. affiliates. Other names may be trademarks of their respective
  14. owners.
  15. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  16. mysql> exit
复制代码
11、修改暗码
  1. [root@mysql-server mysql]# /usr/local/mysql/bin/mysqladmin -u root -p'zSRB*h)z+58o'  password 'JLTing@22897'
  2. mysqladmin: [Warning] Using a password on the command line interface can be insecure.
  3. Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
  4. //并不是报错,而是警告,告诉你密码在命令行中明文显示有风险
复制代码
12、添加环境变量
  1. [root@mysql-server mysql]# vim /etc/profile    ---添加如下
  2. PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
  3. //参数解释:$PATH :表示使用当前已经设置的PATH值。PATH值是系统找可执行程序(binaries)和脚本(scripts)的路径(路径列表);执行这条命令就可以保留当前已经设置的PATH路径(例如:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
  4. [root@mysql-server bin]# echo $PATH //可以用这个命令查看当前设置路径值
  5. /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  6. // $HOME/bin : 用户的 bin目录,通常包含用户自己安装的命令。
  7. // /usr/local/mysql/bin :MySQL可执行文件的路径。
  8. [root@mysql-server mysql]# source /etc/profile
  9. //之后就可以在任何地方使用mysql命令登陆Mysql服务器
  10. [root@mysql-server bin]# mysql
  11. mysql                       mysql_config_editor         mysqlimport                 mysql_ssl_rsa_setup
  12. [root@mysql-server mysql]# mysql -uroot -p'JLTing@22897'
  13. ...
  14. mysql> show databases;  //注意是复数形式
  15. +--------------------+
  16. | Database           |
  17. +--------------------+
  18. | information_schema |
  19. | mysql              |
  20. | performance_schema |
  21. | sys                |
  22. +--------------------+
  23. 4 rows in set (0.00 sec)
  24. mysql>exit  //或使用\q也能退出
复制代码
13、配置mysqld服务的管理工具
  1. [root@mysql-server mysql]# cd /usr/local/mysql/support-files/
  2. [root@mysql-server support-files]# cp mysql.server /etc/init.d/mysqld
  3. //mysql.server:MySQL服务器初始化及启动、停止脚本
  4. //设置开机自启
  5. [root@mysql-server support-files]# chkconfig --add mysqld
  6. //--add 参数表示添加一个服务到 chkconfig管理中
  7. [root@mysql-server support-files]# chkconfig mysqld on
  8. //可以使用以下命令查看开机自启是否设置成功
  9. [root@mysql-server support-files]# systemctl is-enabled mysqld.service
  10. mysqld.service is not a native service, redirecting to /sbin/chkconfig.
  11. Executing /sbin/chkconfig mysqld --level=5
  12. enabled
  13. //或者使用以下命令也可以:
  14. [root@mysql-server support-files]# chkconfig --list mysqld
复制代码
  注:该输出效果只显示 SysV 服务,并不包含 原生 systemd 服务。SysV 配置数据 可能被原生 systemd 配置覆盖。
要列出 systemd 服务,请实行 ‘systemctl list-unit-files’。查看在具体 target 启用的服务请实行’systemctl list-dependencies [target]'。
mysqld 0:关 1:关 2:开 3:开 4:开 5:开 6:关
表示MySQL已经设为在运行级别2、3、4、5自动启动。
  1. //先将原来的进程杀掉
  2. [root@mysql-server support-files]# pkill mysqld
  3. //或者
  4. [root@mysql-server support-files]# ps -ef|grep mysql
  5. //再kill对应的pid
  6. //启动mysqld
  7. [root@mysql-server support-files]# /etc/init.d/mysqld start
  8. Starting MySQL. SUCCESS!
  9. [root@mysql-server support-files]# netstat -ntlp
  10. Active Internet connections (only servers)
  11. Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
  12. tcp6       0      0 :::3306                 :::*                    LISTEN      22656/mysqld
  13. //停止mysqld
  14. [root@mysql-server support-files]# /etc/init.d/mysqld stop
  15. Shutting down MySQL.. SUCCESS!
复制代码
14、托管到systemd服务管理工具中启动服务
  1. [root@mysql-server ~]# vim /lib/systemd/system/mysqld.service
  2. [Unit]
  3. Description=MySQL Server
  4. Documentation=man:mysqld(8)
  5. Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
  6. After=network.target
  7. After=syslog.target
  8. [Install]
  9. WantedBy=multi-user.target
  10. [Service]
  11. User=mysql
  12. Group=mysql
  13. ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
  14. LimitNOFILE = 5000  //设置操作系统默认允许mysql进程最大打开文件的数量
复制代码
  参数表明
[Unit]:以systemd为根本的Linux体系中每个服务的种别
Description: 给MySQL服务提供一个形貌 After: 设置MySQL依赖的服务是network.target,即网络服务
    [Service]:服务配置模块
Type: 将MySQL服务的范例设置为forking,即有子进程
ExecStart:用/etc/rc.d/init.d/mysqld start来启动MySQL服务
ExecReload:用/etc/rc.d/init.d/mysqld restart来重启MySQL服务
ExecStop:用/etc/rc.d/init.d/mysqld stop来制止MySQL服务
PrivateTmp:给MySQL分配私有的临时文件夹 ​
    [Install]:
WantedBy: 设置MySQL服务属于multi-user.target,即属于多用户目标。
  重新加载systemd体系和服务管理器。当修改systemd的服务文件时(比如mysqld.service文件),需要利用systemctl daemon-reload来让修改生效。
  1. [root@mysql-server ~]# systemctl daemon-reload
  2. [root@mysql-server ~]# systemctl restart mysqld
  3. [root@mysql-server ~]# netstat -ntlp
  4. Active Internet connections (only servers)
  5. Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
  6. tcp6       0      0 :::3306                 :::*                    LISTEN      22924/mysqld
  7. [root@mysql-server ~]# systemctl enable mysqld.service
  8. Created symlink from /etc/systemd/system/multi-user.target.wants/mysqld.service to /usr/lib/systemd/system/mysqld.service.
  9. [root@mysql-server ~]# systemctl  is-enabled mysqld.service
  10. enabled
复制代码
至此,数据库编译安装完成!
三、二进制安装方式

   二进制安装和编译安装的区别:编译安装需要颠末自行编译事后,才能得到二进制(可实行)文件,而二进制安装是直接下载官网已经编译好的二进制文件(executables和libraries),直接利用即可,无需自己编译
  1、下载二进制包
  1. [root@mysql-server ~]# wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz
复制代码
2、添加用户
  1. [root@mysql-server ~]# groupadd -g 27 mysql && useradd -g 27 -u 27 -M -s /sbin/nologin mysql
  2. [root@mysql-server ~]# id mysql
  3. uid=27(mysql) gid=27(mysql) 组=27(mysql)
  4. [root@mysql-server ~]# tar xzvf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz -C /usr/local
  5. [root@mysql-server ~]# mv  /usr/local/mysql-5.7.41-linux-glibc2.12-x86_64  /usr/local/mysql
  6. //授权属主和属组
  7. [root@mysql-server ~]# chown -R mysql:mysql /usr/local/mysql
  8. //创建日志文件并授权
  9. [root@mysql-server ~]# touch /var/log/mysql.log && chown mysql:mysql /var/log/mysql.log
复制代码
3、编辑配置文件
  1. [root@mysql-server ~]# vim /etc/my.cnf
  2. [mysqld]
  3. basedir=/usr/local/mysql
  4. datadir=/usr/local/mysql/data
  5. socket=/usr/local/mysql/data/mysql.sock
  6. port=3306
  7. default-storage-engine = innodb
  8. innodb_large_prefix=on
  9. innodb_file_per_table = on
  10. max_connections = 10000
  11. collation-server = utf8_general_ci
  12. character_set_server=utf8
  13. user=mysql
  14. [client]          
  15. port = 3306
  16. socket = /usr/local/mysql/data/mysql.sock
  17. default-character-set = utf8
  18. [mysqld_safe]
  19. log-error=/var/log/mysql.log
复制代码
参数表明
  1. [mysqld]    //mysql服务相关的配置
  2. basedir=/usr/local/mysql    #MySQL安装目录
  3. datadir=/usr/local/mysql/data    #数据库数据文件存放目录
  4. socket=/usr/local/mysql/data/mysql.sock  #MySQL使用的Unix socket文件路径;mysql socket的作用:用于应用程序间的通信。让本地客户端优先使用socket文件连接,获得更好的性能。限制只有有权限访问该socket文件的进程才能连接MySQL,提高安全性
  5. port=3306   #MySQL监听的TCP/IP 端口号
  6. default-storage-engine = innodb  #默认的存储引擎,这里使用的是Innodb
  7. innodb_large_prefix=on      #启用Innodb的大VARCHAR和TEXT列,开启后支持更长的列和索引;不开启此参数时,InnoDB支持的VARCHAR最大长度为255字节,TEXT最大长度为65535字节。开启此参数后,InnoDB支持的VARCHAR最大长度提升到65535字节,TEXT最大长度提升到163830字节。
  8. innodb_file_per_table = on   #开启每个表使用单独的表空间文件
  9. max_connections = 10000     #最大允许的并发连接数
  10. collation-server = utf8_general_ci  #设置MySQL服务器(全局)的默认字符集和校对规则。utf8:表示字符集为utf8,可以表示绝大部分的国际字符;_general_ci:表示校对规则为utf8_general_ci, 其中:general:表示最常用的比较规则,ci:表示忽略字符大小写(case insensitive)
  11. character_set_server=utf8    #设置了MySQL服务器(整个实例)的默认字符集。
  12. //MySQL支持很多种字符集,例如:
  13.     utf8:多字节字符集,支持绝大部分国际字符
  14.     latin1:单字节字符集,只支持西欧语言字符
  15.     gbk:支持简体中文字符
  16.     big5:支持繁体中文字符
  17. user=mysql   //MySQL服务运行的用户
  18. [client]    //客户端配置
  19. port = 3306     #(在[client]部分)表示客户端连接MySQL时使用的端口
  20. socket = /usr/local/mysql/data/mysql.sock    #(在[client]部分)表示客户端连接MySQL时使用的Unix socket文件路径
  21. default-character-set = utf8    #(在[client]部分) 表示客户端连接时使用的默认字符集
  22. [mysqld_safe]    //[mysqld_safe]部分是针对MySQL的mysqld_safe启动脚本的配置
  23. log-error=/var/log/mysql.log    #指定mysqld_safe脚本的日志文件路径为/var/log/mysql.log。
复制代码
4、添加环境变量
  1. [root@mysql-server ~]# cat >>/etc/profile<<EOF
  2. export PATH=\${PATH}:/usr/local/mysql/bin
  3. EOF
  4. [root@mysql-server ~]# source /etc/profile
  5. //或者
  6. [root@mysql-server ~]# echo 'export PATH=${PATH}:/usr/local/mysql/bin'>>/etc/profile
  7. [root@mysql-server ~]# source /etc/profile
  8. //或者
  9. [root@mysql-server ~]# ln -s /usr/local/mysql/bin/mysql /usr/sbin/mysql
  10. [root@mysql-server ~]# whereis mysql
  11. mysql: /usr/lib64/mysql /usr/local/mysql /usr/share/mysql /usr/local/mysql/bin/mysql
  12. [root@mysql-server ~]# which  mysql
  13. /usr/local/mysql/bin/mysql
复制代码
5、初始化数据库,产生随机初始登录暗码,在末了一行
  1. [root@mysql-server ~]# mysqld --initialize --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --user=mysql
  2. 2023-10-10T12:28:00.554234Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
  3. 2023-10-10T12:28:00.706131Z 0 [Warning] InnoDB: New log files created, LSN=45790
  4. 2023-10-10T12:28:00.742466Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
  5. 2023-10-10T12:28:00.805015Z 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: 738e9da6-6768-11ee-b446-000c295e8b83.
  6. 2023-10-10T12:28:00.805493Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
  7. 2023-10-10T12:28:01.103679Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
  8. 2023-10-10T12:28:01.103693Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
  9. 2023-10-10T12:28:01.104128Z 0 [Warning] CA certificate ca.pem is self signed.
  10. 2023-10-10T12:28:01.195887Z 1 [Note] A temporary password is generated for root@localhost: )E7Pb?a!odyr
复制代码
6、添加启动脚本
  1. [root@mysql-server ~]# vim /usr/lib/systemd/system/mysql.service
  2. [Unit]
  3. Description=MySQL Server
  4. Documentation=man:mysqld(8)
  5. Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
  6. After=network.target
  7. After=syslog.target
  8. [Install]
  9. WantedBy=multi-user.target
  10. [Service]
  11. User=mysql
  12. Group=mysql
  13. ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
  14. LimitNOFILE = 5000  
  15. #设置操作系统默认允许mysql进程最大打开文件的数量
复制代码
7、更新自启动服务,查看工作端口
  1. #重新加载systemd管理器的unit配置文件
  2. [root@mysql-server ~]# systemctl daemon-reload
  3. [root@mysql-server ~]# systemctl enable --now mysql.service
  4. [root@mysql-server ~]# systemctl  restart mysql
  5. [root@mysql-server ~]# systemctl enable mysql
  6. [root@mysql-server ~]# netstat -ntpl | grep "3306"
复制代码
8、登录
  1. [root@mysql-server ~]# mysql -u root -p')E7Pb?a!odyr'
复制代码
9、修改登录暗码
  1. mysql> alter user 'root'@'localhost' identified by '123456';
  2. Query OK, 0 rows affected (0.00 sec)
  3. mysql> update mysql.user set password_expired='N';    //设置mysql库中的user表中的password_expired为No,意思就是设置密码不过期
  4. Query OK, 0 rows affected (0.00 sec)
  5. Rows matched: 3  Changed: 0  Warnings: 0
  6. ​mysql> flush privileges;
  7. Query OK, 0 rows affected (0.00 sec)
复制代码
  1. [root@mysql-server ~]# mysql -u root -p123456
复制代码
为了方便后续利用,建议将三种安装方式写成脚本!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

来自云龙湖轮廓分明的月亮

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表