環境
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.gzhtml
1、卸載原先安裝的mysql
一、查找已安裝mysql版本node
[root@node102 /]# rpm -qa | grep mysql mysql-libs-5.1.71-1.el6.x86_64
二、刪除mysqlmysql
[root@node102 /]# rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
刪除以後使用rpm -qa | grep mysql 驗證是否刪除成功linux
三、刪除殘留mysql文件sql
[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
2、下載、上傳、解壓數據庫
一、下載解壓版mysql 安裝版會是文件分散並且一旦安裝失敗 很差卸載
apache
三、解壓 建立軟鏈接bootstrap
[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
四、建立mysql-files目錄,其做用是爲secure_file_priv系統變量的值的導入和導出到限定目錄提供方便vim
[root@node102 local]# cd mysql && mkdir mysql-files
五、安裝依賴庫libaio,若是更高版本是支持非均勻內存訪問(NUMA)的,它如今依賴於libnuma 庫,Redhat/Fedora/CentOS系統centos
[root@node102 local]# yum install libaio -y
六、建立MYSQL data數據庫文件目錄
[root@node102 local]# mkdir /usr/local/mysql/data
七、建立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 .
八、初始化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選項的做用是什麼?
九、建立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
十、配置/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
十一、啓動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!
十二、mysql bin目錄加入環境變量並從新加載
[root@PCS101 local]# vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
[root@PCS101 local]# source /etc/profile
1三、獲取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
1四、容許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
3、使用root帳號建立應用系統訪問用戶和數據庫
一、使用mysql -u root -p登錄
[root@PCS101 local]# mysql -u root -p
Enter password:
二、建立test用戶,容許該用戶本地訪問
mysql> create user 'test'@'localhost' identified by '123456';
三、建立test用戶,容許該用戶遠程訪問
mysql> create user 'test'@'%' identified by '123456';
四、刷新受權:
mysql> flush privileges;
五、建立數據庫testdb
mysql> create database testdb DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
六、授予用戶test經過遠程IP對於該數據庫的所有權限
mysql> grant all privileges on `testdb`.* to 'test'@'%' identified by '123456';
若是不賦權 使用Navicat遠程鏈接會報錯 「1045 access denied for user 'test'@'localhost' ....」
七、授予用戶在本地服務器對該數據庫的所有權限
mysql> grant all privileges on `testdb`.* to 'test'@'localhost' identified by '123456';
八、刷新受權:
mysql> flush privileges;
九、退出 root 從新登陸
mysql> exit
十、配置Navicat遠程登陸mysql
注意:linux下mysql默認是要區分表名大小寫的
參考: