在centos7上安裝 路上遇過各種坑 把在centos7正確安裝mysql-5.7.14分享一下
1. CentOs7 默認的數據庫為MariaDB,先卸載MariaDB,否則安裝mysql,引起沖突
rpm -qa mariadb rpm -e --nodeps mariadb
2. 準備好工作環境 mkdir /application #此目錄用來存放需要另外存放的應用程序安裝目錄
3. 創建mysql用戶組與用戶,并下載安裝包
groupadd mysql useradd -g mysql -s /sbin/nologin -M mysql id mysql uid=1001(mysql) gid=1001(mysql) groups=1001(mysql) PS.如果已經存在提示錯誤了 可以先刪除 cd /application 下載安裝包, 我這里安裝的是,mysql-5.7.16.tar.gz wget -c http://192.168.42.26/install_package/down/mysql-5.7.16.tar.gz
4. 解壓并安裝mysql
tar xf mysql-5.7.16.tar.gz ls mysql-5.7.16-linux-glibc2.5-x86_64 mysql-5.7.16.tar.gz mv mysql-5.7.16-linux-glibc2.5-x86_64 mysql-5.7.16 cd mysql [root@test mysql]# ls bin COPYING docs include lib man mysql README share support-files
我要把整個mysql都安裝在/application目錄里,下面是初始化mysql mysql5.7之前使用./bin/mysql_install_db –user=mysql –basedir=[install dir] –datadir=[data dir] 命令,但是 5.7以后已經放棄mysql_install_db,使用新的mysqld
[root@test mysql-5.7.16]# ./bin/mysqld --user=mysql --basedir=/application/mysql-5.7.16/ --datadir=/application/mysql-5.7.16/data --initialize 2017-05-07T02:11:06.891174Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-05-07T02:11:09.101667Z 0 [Warning] InnoDB: New log files created, LSN=45790 2017-05-07T02:11:09.572053Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2017-05-07T02:11:09.795916Z 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: 6fc38e6f-32ca-11e7-9717-000c29c8721f. 2017-05-07T02:11:09.812070Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2017-05-07T02:11:09.827010Z 1 [Note] A temporary password is generated for root@localhost: iRctOTz9sr--
特別要注意最后的密碼,是進入mysql的密碼
PS.如果你的data文件有內容 會報
[ERROR] --initialize specified but the data directory has files in it. Aborting.
這個錯誤 正確的是把data文件清空 rm -rf *
mv /etc/my.cnf /etc/my.cnf.back.old cd support-files/ cp my-default.cnf /etc/my.cnf cp mysql.server /etc/init.d/mysqld [root@test application]# ln -s mysql-5.7.16 mysql [root@test application]# ls mysql mysql-5.7.16 mysql-5.7.16.tar.gz svndata svnpasswd [root@test support-files]# service mysqld start /etc/init.d/mysqld: line 251: my_print_defaults: command not found /etc/init.d/mysqld: line 271: cd: /usr/local/mysql: No such file or directory Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
因為默認的目錄是/usr/local/mysql 我們換了別的目錄 我們修改 vim /etc/my.cnf
basedir=/application/mysql datadir=/application/mysql/data
整體配置如下: # For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the # *** default location during install, and will be replaced if you # *** upgrade to a newer version of MySQL. [mysqld] # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # These are commonly set, remove the # and set as required. basedir = /application/mysql ###### datadir = /application/mysql/data ### port = 3306 ### # server_id = ..... socket =/var/lib/mysql/mysql.sock ### # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M character_set_server=utf8 ### init_connect='SET NAMES utf8' ### sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [client] default-character-set=utf8 socket =/var/lib/mysql/mysql.sock
進行修改成現在的目錄 之后 ESC , :號后wq回車 保存退出
5. 啟動MySQL
[root@test application]# service mysqld start Starting MySQL.... SUCCESS!
6.加入開機自啟動
[root@test application]# systemctl is-enabled mysqld mysqld.service is not a native service, redirecting to /sbin/chkconfig. Executing /sbin/chkconfig mysqld --level=5 disabled systemctl enable mysqld [root@test application]# systemctl is-enabled mysqld mysqld.service is not a native service, redirecting to /sbin/chkconfig. Executing /sbin/chkconfig mysqld --level=5 enabled
7. 添加環境變量vim /etc/profile.d/mysql.d
export PATH=$PATH:/application/mysql/bin logout 退出重新登錄
8.更改msyql密碼
[root@test ~]# 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.16 Copyright (c) 2000, 2016, 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> use mysql ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 執行任何命令都提示要更改密碼 set password for 'root'@'localhost'=password('root'); ##輸入這條命令即可
我們也可以通過mysqladmin來改密碼 mysqladmin -u root -h localhost password ‘root’ -p ##按照提示操作即可,需要輸入舊密碼
重啟mysql
9.如果我們想直接通過mysql命令進入mysql,又必須需要密碼,怎么辦,我們可以這樣做,在root家目錄創建 隱藏文件.my.cnf,編輯如下,運行mysql命令即可
[client] default-character-set=utf8 socket =/var/lib/mysql/mysql.sock user=root host=localhost password=root
運行mysql命令,直接進入
[root@test ~]# mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.16 MySQL Community Server (GPL) Copyright (c) 2000, 2016, 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>
至此,mysql的安裝已經完成
原創文章,作者:srayban,如若轉載,請注明出處:http://www.www58058.com/74880