操作系统:CentOs 7.7
MySQL版本:MySQL-5.7.25-x86_64
安装步骤:
1. 查找并卸载 mariadb
# 查找当前系统下是否有mariadb [root@fyd ~]$ rpm -qa | grep mariadb # 卸载 mariadb-libs-5.5.64-1.el7.x86_64 [root@fyd ~]$ rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64
2. 卸载原有的 mysql 相关
# 查找当前系统是否有mysql [root@fyd ~]$ rpm -qa | grep mysql # 删除配置⽂件 [root@fyd ~]$ rm /etc/my.cnf # 查找是否存在mysql用户组和用户 [root@fyd ~]$ cat /etc/group | grep mysql [root@fyd ~]$ cat /etc/passwd | grep mysql
3. 创建 mysql 用户和组
# 创建用户组 [root@fyd ~]$ groupadd mysql # 创建用户 [root@fyd ~]$ useradd -g mysql mysql # 修改用户密码 [root@fyd ~]$ passwd mysql Changing password for user mysql. New password: Retype new password: passwd: all authentication tokens updated successfully.
4. 将 mysql 离线安装⽂件上传到服务器上
(1)下载地址及文件位置
(2)上传到服务器的 /usr/local/ 目录下
5. 解压并建立软链接
# 注意:5的操作均在此⽬录下进⾏ [root@fyd ~]$ cd /usr/local/ # 解压 [root@fyd local]$ tar -zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz # 创建软链接 [root@fyd local]$ ln -s mysql-5.7.25-linux-glibc2.12-x86_64 mysql # 赋予mysql⽤户权限 [root@fyd local]$ chown -R mysql:mysql mysql/
6. 创建相关文件,赋予 mysql 用户权限
# 分别创建data tmp log文件夹 # 此目录可手动指定,不过要和mysql配置文件中相一致 [root@fyd ~]$ mkdir -p /home/fyd/mysql/{data,tmp,log} # 赋权 [root@fyd ~]$ cd /home/fyd/ [root@fyd fyd]$ chown -R mysql:mysql mysql/
7. 创建并修改配置文件
# 这⾥选择将配置⽂件放在/etc下⾯,也可以放在mysql根⽬录下 [root@fyd ~]$ cd /etc # 创建并编辑my.cnf [root@fyd etc]$ vi my.cnf
给出配置文件作为参考:
[mysql] default-character-set = utf8mb4 [mysqld] # ---------------- Basic ---------------- server_id = 100 port = 3306 basedir = /usr/local/mysql datadir = /home/fyd/mysql/data socket = /tmp/mysql.sock skip-host-cache skip_name_resolve lower_case_table_names = 1 character-set-server = utf8mb4 collation-server = utf8mb4_general_ci init_connect = 'SET NAMES utf8mb4' query_cache_size = 0 query_cache_type = 0 sql_mode = NO_ENGINE_SUBSTITUTION,NO_AUTO_CREATE_USER # ---------------- Connection/File/Table ---------------- max_connections = 10000 max_connect_errors = 20000 interactive_timeout = 1800 wait_timeout = 1800 lock_wait_timeout = 1800 max_allowed_packet = 1024M # ---------------- log ---------------- log-bin=/home/fyd/mysql/log/mysql-bin log_error = /home/fyd/mysql/log/error.log binlog_format = ROW expire_logs_days = 8
8. 安装 mysql (要先安装依赖)
# 安装相关依赖,否则会报错 [root@fyd ~]$ yum install libaio* # 进到mysql /bin 目录 [root@fyd ~]$ cd /usr/local/mysql/bin/ # 初始化mysql,指定用户为mysql # 此处如果日志中配置了log_error,则控制台不会打印数据 #[root@fyd bin]$ ./mysqld --initialize --user=mysql [root@fyd bin]# mysql_install_db --datadir=/home/mysql/data --user=mysql --defaults-file=/etc/my.cnf
9. 设置开机启动
# 进⼊应⽤根⽬录 [root@fyd ~]$ cd /usr/local/mysql/ # 复制启动脚本到资源⽬录 [root@fyd mysql]$ cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld # 增加mysqld服务控制脚本执⾏权限 [root@fyd mysql]$ chmod +x /etc/rc.d/init.d/mysqld # 将mysqld服务加⼊到系统服务 [root@fyd mysql]$ chkconfig --add mysqld # 检查mysqld服务是否已经⽣效 [root@fyd mysql]$ chkconfig --list mysqld
10. 切换⾄mysql 用户,设置环境变量
# 切换⾄mysql⽤户 [root@fyd ~]$ su - mysql # 修改配置⽂件,增加export PATH=$PATH:/usr/local/mysql/bin [mysql@fyd ~]$ vi .bash_profile # 刷新配置⽂件使其⽴即⽣效 [mysql@fyd ~]$ source .bash_profile
11. 启动服务
# 仍然在mysql⽤户下,启动mysql(启动⽤start) [mysql@fyd ~]$ service mysqld restart # 重启的时候报警告 Shutting down MySQL..[ OK ] rm: cannot remove '/var/lock/subsys/mysql': Permission denied Starting MySQL.[ OK ] # 切回root⽤户,赋权即即可 [mysql@fyd ~]$ su - root [root@fyd ~]$ cd /var/lock/ [root@fyd lock]$ chown -R mysql:mysql subsys/ # 切回mysql重启,成功。 [mysql@fyd ~]$ service mysqld restart Shutting down MySQL..[ OK ] Starting MySQL.[ OK ]
12. 修改 mysql 默认密码并设置远程连接
-- 修改密码 set password for root@localhost=password("root"); flush privileges; -- 远程连接 use mysql; update user set host='%' where user='root'; flush privileges;
ps:我在用此方法同一台linux安装第二个mysql的时候,我把所有用户和程序名称都新加了一个mysql3307,这个必须把my.cnf方到第二个程序的basedir(/usr/local/mysql3307)下,命名为my.cnf
连接第二个mysql要使用
/usr/local/mysql3307/bin/mysql --socket=/var/lib/mysql3307/mysql.sock --port=3307 -uroot -p我的笔记博客版权我的笔记博客版权