赞
踩
环境:Centos7.9 mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
[root@mysql ~]# rpm -qa|grep mysql #先查看下系统有没有安装有mysql包,有的话就卸载
[root@mysql ~]# rpm -qa| grep mariadb #查看有没有其他的数据库,如mariadb ,有的话需要卸载
[root@mysql ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps #卸载mariadb
[root@mysql ~]# rpm -qa| grep glibc #先查询glic版本是否等于或高于你下载的mysql安装包
glibc-2.17-324.el7_9.x86_64
[root@mysql ~]# rpm -qa|grep libaio #查看有没有安装libaio,没有就yum安装
libaio-0.3.109-13.el7.x86_64
[root@mysql ~]# rpm -qa|grep ncurses-compat-libs #查看有没有安装ncurses,没有就yum安装
[root@mysql ~]# yum install ncurses* #安装ncurses相关的依赖包
[root@mysql ~]# mkdir /mysql_software/ #创建一个mysql_software目录,用于存放解压后的mysql包
[root@mysql ~]# useradd -M -s /bin/false mysql #创建一个没有家目录也不能登录的专门用于运行MySQL的用户 [root@mysql ~]# mkdir /data/ #创建一个data目录,用于存放mysql的数据 [root@mysql ~]# chown -R mysql:mysql /data/ #授权给mysql管理data目录 [root@mysql ~]# tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz -C /mysql_software/ #解压mysql的tar包到指定目录 [root@mysql ~]# cd /mysql_software #进入到解压的目录 [root@mysql mysql_software]# cd mysql-5.7.33-linux-glibc2.12-x86_64/ #进入到解压的目录 [root@mysql mysql-5.7.33-linux-glibc2.12-x86_64]# ll #查看解压出来的mysql文件 total 264 drwxr-xr-x. 2 root root 4096 Jul 4 20:48 bin drwxr-xr-x. 2 root root 55 Jul 4 20:48 docs drwxr-xr-x. 3 root root 4096 Jul 4 20:47 include drwxr-xr-x. 5 root root 230 Jul 4 20:48 lib -rw-r--r--. 1 7161 31415 250129 Dec 10 2020 LICENSE drwxr-xr-x. 4 root root 30 Jul 4 20:47 man -rw-r--r--. 1 7161 31415 566 Dec 10 2020 README drwxr-xr-x. 28 root root 4096 Jul 4 20:48 share drwxr-xr-x. 2 root root 90 Jul 4 20:48 support-files #创建一个软连接,创建软件链接的好处在于,对外使用/usr/local/mysql软链接,当mysql软件版本改变的时候,我们只需要重新定义软链接到新的 # mysql版本即可,这样就能保证软链接访问路径不会改变 [root@mysql mysql_software]# ln -s /mysql_software/mysql-5.7.33-linux-glibc2.12-x86_64/ /usr/local/mysql [root@mysql mysql_software]# chown -R mysql:mysql mysql-5.7.33-linux-glibc2.12-x86_64/ #授权 [root@mysql local]# cd /usr/local/ [root@mysql local]# chown -R mysql:mysql mysql/ #授权 [root@mysql local]# cd mysql/bin [root@mysql bin]#./mysqld --initialize --user=mysql --datadir=/data #初始化并指定数据目录,会生成root密码,记住这个密码 [root@mysql bin]#./mysql_ssl_rsa_setup --datadir=/data/ --uid=mysql #设置mysql加密通讯 [root@mysql bin]# ./mysqld_safe --user=mysql & [root@mysql support-files]# cp mysql.server /etc/init.d/mysqld #复制mysql的启动文件到/etc/init.d/目录 [root@mysql ~]# echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile #定义全局变量
由于我们使用的二进制包,即通用版的glibc预编译过的安装包,从官方得知mysql由于在5.7开始,二进制包不再包含示例文件my-default.cnf,所以如果你想使用/etc/my.cnf文件的话,你就需要自己来编写这个文件;但即使没有my.cnf文件,MySQL也能正常运行,这是因为很多默认配置已经编译在二进制文件中了,我们也可以可以通过 mysql --verbose --help 可以看到相应的默认配置。
其实,我们仍然可以通过配置文件my.cnf对mysql进行配置,my.cnf文件其实就是把在命令行上启动MySQL时后面的参数使用my.cnf文件配置好,那么下次启动时就不再需要在命令上加上参数,这个my.cnf文件可以是自定义位置,也可以使用如下默认的位置,只要放在默认位置,MySQL自动识别,识别顺序如下:
文件名 | 目的 |
---|---|
/etc/my.cnf | 全局选项 |
/etc/mysql/my.cnf | 全局选项 |
SYSCONFDIR/my.cnf | 全局选项 |
$MYSQL_HOME/my.cnf | 服务器特定选项(仅限服务器) |
defaults-extra-file | 指定的文件 --defaults-extra-file,如果有的话 |
~/.my.cnf | 用户特定选项 |
~/.mylogin.cnf | 用户特定的登录路径选项(仅限客户端) |
[root@mysql ~]# vim /etc/my.cnf #自己创建my.cnf文件,并添加以下内容,内容根据自己的实际情况添加 [client] port = 3306 socket = /data/tmp/mysql.sock default-character-set = utf8 #客户端字符集 [mysqld] server_id = 1 port = 3306 #端口 datadir = /data #MySQL的数据目录 basedir = /usr/local/mysql #MySQL的安装目录 socket = /data/tmp/mysql.sock #socket文件 pid-file = /data/pid/mysql.pid #pid文件 log_error = /data/logs/error.log #数据库错误日志文件 character-set-server = utf8 #MySQL字符集 lower_case_table_names = 1 #是否对sql语句大小写敏感,1表示不敏感 max_connections = 2048 #最大连接数 max_connect_errors = 1000 #最大错误连接数 [root@mysql ~]# [root@mysql mysql]# mkdir /data/pid #创建目录 [root@mysql mysql]# mkdir /data/tmp #创建目录 [root@mysql mysql]# mkdir /data/logs #创建目录 [root@mysql mysql]# touch /data/pid/mysql.pid #创建pid文件 [root@mysql mysql]# touch /data/tmp/mysql.sock #创建mysql.sock文件 [root@mysql mysql]# touch /data/logs/error.log #创建error.log文件 [root@mysql mysql]#chown -R mysql:mysql /data #重新授权,因为刚才创建了目录和文件,确保创建的3个文件mysql用户具有写入权限
[root@mysql logs]# /etc/init.d/mysqld start #启动MySQL
Starting MySQL. SUCCESS!
[root@mysql logs]# lsof -i:3306 #端口正常
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 18506 mysql 20u IPv6 49588 0t0 TCP *:mysql (LISTEN)
[root@mysql ~]# mysql -uroot -p #-u指定用户,默认就是root用户,中间不用加空格 Enter password: #输入初始化时生成的随机密码 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.33 Copyright (c) 2000, 2021, 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. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'manager001'; #修改root密码 mysql> flush privileges; #重新刷新权限,让配置重新生效 mysql>use mysql; #切换到mysql数据库 mysql> select user,host from user; #查看用户表 +---------------+-----------+ | user | host | +---------------+-----------+ | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | #发现root用户只允许本机登录 +---------------+-----------+ 3 rows in set (0.00 sec) mysql> update user set host='%' where user='root' and host='localhost'; #修改root能从任何客户端登陆 Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; #重新刷新权限 mysql> exit; #退出 [root@mysql ~]# mysqladmin -uroot -p shutdown #关闭数据库 Enter password: [root@mysql ~]# [root@mysql ~]# lsof -i:3306 #MySQL以关闭,端口已不存在 [root@mysql ~]#
是不是很多,哈哈哈,多看几遍就会了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。