环境
OS:CentOS-6.5
JDK:jdk-7u80-linux-x64.tar.gz
Tomcat:apache-tomcat-7.0.90.tar.gz
mysql:mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
一、卸载原先安装的mysql
1、查找已安装mysql版本
[root@node102 /]# rpm -qa | grep mysql mysql-libs-5.1.71-1.el6.x86_64
2、删除mysql
[root@node102 /]# rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
删除之后使用rpm -qa | grep mysql 验证是否删除成功
3、删除残留mysql文件
[root@node102 /]# rm -rf /var/lib/mysql* [root@node102 /]# rm -rf /usr/share/mysql* [root@node102 /]# rm -rf /etc/my.cnf [root@node102 /]# rm -rf /etc/my.cnf~ [root@node102 /]# rm -rf /var/lib/mysql
二、下载、上传、解压
1、下载解压版mysql 安装版会是文件分散而且一旦安装失败 不好卸载
3、解压 创建软连接
[root@node102 src]# tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ [root@node102 src]# cd /usr/local/ && ln -s mysql-5.7.26-linux-glibc2.12-x86_64 mysql
4、创建mysql-files目录,其作用是为secure_file_priv系统变量的值的导入和导出到限定目录提供方便
[root@node102 local]# cd mysql && mkdir mysql-files
5、安装依赖库libaio,如果更高版本是支持非均匀内存访问(NUMA)的,它现在依赖于libnuma 库,Redhat/Fedora/CentOS系统
[root@node102 local]# yum install libaio -y
6、创建MYSQL data数据库文件目录
[root@node102 local]# mkdir /usr/local/mysql/data
7、创建mysql的用户组和用户,并对mysql目录设置用户组和用户
[root@node102 local]# groupadd mysql [root@node102 local]# useradd mysql -g mysql [root@node102 local]# cd mysql && pwd /usr/local/mysql [root@node102 mysql]# chown -R mysql . [root@node102 mysql]# chgrp -R mysql .
8、初始化mysql (这一步依赖mysql用户)
[root@node102 bin]# /usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 2019-07-02 09:09:33 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize 2019-07-02 09:09:39 [WARNING] The bootstrap log isn't empty: 2019-07-02 09:09:39 [WARNING] 2019-07-02T01:09:33.830492Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead 2019-07-02T01:09:33.840636Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000) 2019-07-02T01:09:33.840670Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)
mysql通过mysql_install_db初始化数据目录时使用--user选项的作用是什么?
9、创建sock文件目录
[root@node102 local]# mkdir -p /var/lib/mysql && chown mysql:mysql /var/lib/mysql [root@node102 local]# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
10、配置/etc/my.cnf(mysql的主配置文件)
[mysqld] datadir=/usr/local/mysql/data socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
11、启动mysql
(1)命令启动
[root@node102 run]# /usr/local/mysql/support-files/mysql.server start
Starting MySQL. SUCCESS!
(2) 系统服务启动
#拷贝启动服务脚本到系统服务目录下
[root@node102 ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
#将mysql服务设置为开机启动
[root@node102 ~]# chkconfig mysql on [root@node102 ~]# chkconfig --list | grep mysql mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
#启动mysql
[root@node102 ~]# service mysql start
Starting MySQL. SUCCESS!
12、mysql bin目录加入环境变量并重新加载
[root@PCS101 local]# vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
[root@PCS101 local]# source /etc/profile
13、获取mysql初始化密码,登录mysql,修改root用户密码
[root@node102 run]# cat /root/.mysql_secret # Password set for user 'root@localhost' at 2019-07-02 09:09:33 og4*e1rek6a) [root@localhost ~]# /usr/local/mysql/bin/mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3 Server version: 5.7.26 Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved. 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> set password=password('123456'); Query OK, 0 rows affected, 1 warning (0.00 sec) mysql>FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) mysql> quit Bye
14、允许root用户远程访问:
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.01 sec) mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select Host,User from user; +-----------+---------------+ | Host | User | +-----------+---------------+ | % | root | | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | +-----------+---------------+ 4 rows in set (0.00 sec) mysql> quit Bye
三、使用root账号创建应用系统访问用户和数据库
1、使用mysql -u root -p登陆
[root@PCS101 local]# mysql -u root -p
Enter password:
2、创建test用户,允许该用户本地访问
mysql> create user 'test'@'localhost' identified by '123456';
3、创建test用户,允许该用户远程访问
mysql> create user 'test'@'%' identified by '123456';
4、刷新授权:
mysql> flush privileges;
5、创建数据库testdb
mysql> create database testdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
6、授予用户test通过远程IP对于该数据库的全部权限
mysql> grant all privileges on `testdb`.* to 'test'@'%' identified by '123456';
如果不赋权 使用Navicat远程连接会报错 “1045 access denied for user 'test'@'localhost' ....”
7、授予用户在本地服务器对该数据库的全部权限
mysql> grant all privileges on `testdb`.* to 'test'@'localhost' identified by '123456';
8、刷新授权:
mysql> flush privileges;
9、退出 root 重新登录
mysql> exit
10、配置Navicat远程登录mysql
注意:linux下mysql默认是要区分表名大小写的
参考: