centos7.3 安装 mysql-5.7.13
?系統環境:
[root@localhost ~]# cat /etc/RedHat-release?
CentOS?release 6.7 (Final)
[root@localhost tools]# uname -a
Linux localhost 2.6.32-573.22.1.el6.x86_64 #1 SMP Wed Mar 23 03:35:39 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@localhost tools]#?
軟件準備:
[root@localhost tools]# pwd
/opt/tools
[root@localhost tools]# ll
total 674208
-rw-r--r-- 1 root root 639864682 Jul 22 17:47 mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
-rw-r--r-- 1 root root? 50516207 May 25 12:01 mysql-5.7.13.tar.gz
[root@localhost tools]#
解壓安裝:
[root@localhost tools]# tar xf mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz?
[root@localhost tools]# ll
total 674212
drwxr-xr-x 9 7161 wheel? ? ? 4096 May 25 15:04 mysql-5.7.13-linux-glibc2.5-x86_64
-rw-r--r-- 1 root root? 639864682 Jul 22 17:47 mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz
-rw-r--r-- 1 root root? 50516207 May 25 12:01 mysql-5.7.13.tar.gz
[root@localhost tools]#?
[root@localhost tools]# mv mysql-5.7.13-linux-glibc2.5-x86_64 /usr/local/mysql
[root@localhost tools]#
初始化操作(生成初始密碼):
[root@localhost mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
2016-07-22T09:58:15.001776Z 0 [Warning] InnoDB: New log files created, LSN=45790
2016-07-22T09:58:15.062066Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2016-07-22T09:58:15.073009Z 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: cebfb8a6-4ff2-11e6-8c8d-005056a01a07.
2016-07-22T09:58:15.074370Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2016-07-22T09:58:15.075736Z 1 [Note] A temporary password is generated for root@localhost: k_1ljzVh3<-,
[root@localhost mysql]#
PS: mysql5.7新特性:由上面可以看出, mysql_install_db 已經不再推薦使用了,建議改成 mysqld --initialize 完成實例初始化。
?
加入MySQL為系統服務:
[root@localhost mysql]# cp support-files/mysql.server? /etc/init.d/mysqld
[root@localhost mysql]# chkconfig mysqld on
[root@localhost mysql]# chkconfig --list|grep mysqld
mysqld? ? ? ? ? 0:off? 1:off? 2:on? ? 3:on? ? 4:on? ? 5:on? ? 6:off
[root@localhost mysql]#chmod 755 /etc/init.d/mysqld
?
MySQL服務啟動、重啟、停止
[root@localhost mysql]# serivce mysqld start
[root@localhost mysql]# serivce mysqld stop
[root@localhost mysql]# serivce mysqld restart
[root@localhost mysql]#?
設置環境變量:
[root@localhost mysql]# vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
[root@localhost mysql]#
檢查MySQL是否能開啟
[root@localhost mysql]# cd /usr/local/mysql
[root@localhost mysql]# cd support-files/
[root@localhost support-files]# ./mysql.server start
Starting MySQL.. SUCCESS!?
若改用了, 則在啟動服務時會出現如下錯誤:
# ./support-files/mysql.server start
./support-files/mysql.server: line 276: cd: /usr/local/mysql: No such file or directory
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
這時候我們需要修改/support-files/mysql.server文件的basedir和datadir目錄路徑為我們正確的mysql的basedir和datadir路徑, 如下:
# vim support-files/mysql.server
--------------------------
...
basedir=/usr/local/mysql
datadir=/data/mysql/data
...?
--------------------------
# ./support-files/mysql.server start
Starting MySQL.. SUCCESS!?
創建配置文件
將默認生成的my.cnf備份
# mv /etc/my.cnf /etc/my.cnf.bak
[root@localhost support-files]# cp my-default.cnf? /etc/my.cnf
初始化mysql用戶root的密碼
先將mysql服務停止
# service mysqld stop
進入mysql安裝目錄, 執行:
# cd /usr/local/mysql
# ./bin/mysqld_safe --skip-grant-tables --skip-networking&
[1] 6225
[root@localhost mysql]# 151110 02:46:08 mysqld_safe Logging to '/data/mysql/data/localhost.localdomain.err'.
151110 02:46:08 mysqld_safe Starting mysqld daemon with databases from /data/mysql/data
另外打開一個終端(p.s. 如果是ssh連接登錄的, 另外創建一個ssh連接即可), 執行操作如下:
# mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor.? Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.13 MySQL Community Server (GPL)
Copyright (c) 2000, 2015,?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;
Database changed
mysql> UPDATE user SET password=PASSWORD('123456') WHERE user='root';
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
mysql> update user set authentication_string = PASSWORD('123456') where user = 'root';
Query OK, 1 row affected, 1 warning (0.02 sec)
Rows matched: 1? Changed: 1? Warnings: 1
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> \s
mysql? Ver 14.14 Distrib 5.7.13, for linux-glibc2.5 (x86_64) using? EditLine wrapper
Connection id:? ? ? ? ? 62
Current database:
Current user:? ? ? ? ? root@localhost
SSL:? ? ? ? ? ? ? ? ? ? Not in use
Current pager:? ? ? ? ? stdout
Using outfile:? ? ? ? ? ''
Using delimiter:? ? ? ? ;
Server version:? ? ? ? 5.7.13-log MySQL Community Server (GPL)
Protocol version:? ? ? 10
Connection:? ? ? ? ? ? Localhost via UNIX socket
Server characterset:? ? utf8
Db? ? characterset:? ? utf8
Client characterset:? ? utf8
Conn.? characterset:? ? utf8
UNIX socket:? ? ? ? ? ? /data/AEData/mysql/data/mysql.sock
Uptime:? ? ? ? ? ? ? ? 46 min 54 sec
Threads: 6? Questions: 6846? Slow queries: 0? Opens: 257? Flush tables: 1? Open tables: 201? Queries per second avg: 2.432
--------------
mysql>?
到此, 設置完mysql用戶root的密碼且確保mysql編碼集是utf8, 注意上面, 新版本的mysql.user表里的密碼字段是authentication_string
MySQL遠程授權
格式如下:
mysql> grant all [privileges] on db_name.table_name to 'username'@'host' identified by 'password';
示例如下:
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.04 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
mysql>?
或用
mysql> grant all on *.* to 'root'@'%' identified by '123456';
到此, 完成了mysql的安裝 及配置!!!
附上配置文件:
[client]?
loose_default-character-set = utf8?
[mysqld]?
basedir = /usr/local/mysql?
datadir = /data/mysql/data?
port = 3306?
server_id = 1?
socket = /data/mysql/data/mysql.sock?
expire_logs_days? ? ? = 7?
innodb_file_per_table?
innodb_buffer_pool_size? ? ? ? = 2G?
innodb_thread_concurrency? ? ? = 24?
innodb_flush_log_at_trx_commit? = 1?
innodb_log_buffer_size? ? ? ? ? = 32M?
innodb_log_file_size? ? ? ? ? ? = 256M?
innodb_log_files_in_group? ? ? = 3?
innodb_max_dirty_pages_pct? ? ? = 90?
innodb_lock_wait_timeout? ? ? ? = 120?
wait_timeout? ? ? ? ? ? = 60??
interactive_timeout? ? = 7200?
skip-name-resolve?
character-set-server? ? = utf8?
back_log? ? ? ? ? ? ? ? = 50?
max_connections? ? ? ? = 3000?
max_connect_errors? ? ? = 32?
max_allowed_packet? ? ? = 32M?
binlog_cache_size? ? ? = 8M?
max_heap_table_size? ? = 512M?
tmp_table_size? ? ? ? ? = 64M?
key_buffer_size? ? ? ? = 16M?
read_buffer_size? ? ? ? = 2M?
read_rnd_buffer_size? ? = 8M?
bulk_insert_buffer_size = 64M?
sort_buffer_size? ? ? ? = 4M?
join_buffer_size? ? ? ? = 2M?
thread_cache_size? ? ? = 64?
thread_stack? ? ? ? ? ? = 192K?
query_cache_type? ? ? ? = 1?
query_cache_size? ? ? ? = 256M?
query_cache_limit? ? ? = 2M?
ft_min_word_len? ? ? ? = 2?
default_storage_engine? = INNODB?
#default_table_type? ? = INNODB?
transaction_isolation? = REPEATABLE-READ?
lower_case_table_names? = 1?
#log_slow_queries?
slow_query_log?
long_query_time = 2?
log-short-format?
myisam_sort_buffer_size? ? ? ? = 128M?
myisam_max_sort_file_size? ? ? = 10G?
myisam_repair_threads? ? ? ? ? = 1?
[mysqldump]?
quick?
max_allowed_packet = 32M?
routines?
single-transaction?
hex-blob?
skip-comments??
complete-insert??
skip-disable-keys??
skip-add-locks??
skip-lock-tables??
[isamchk]??
key_buffer? ? ? = 512M?
sort_buffer_size = 512M?
read_buffer? ? ? = 8M?
write_buffer? ? = 8M?
[myisamchk]?
key_buffer? ? ? = 512M?
sort_buffer_size = 512M?
read_buffer? ? ? = 8M?
write_buffer? ? = 8M?
[mysqlhotcopy]?
interactive-timeout?
# 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??
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
?上面的內容轉載自:https://www.linuxidc.com/Linux/2016-07/133688.htm?hmsr=toutiao.io
?
安裝或使用過程出現的問題
?1.bin/mysqld: error while loading shared libraries: libnuma.so.1
? ?解決方法:如果安裝mysql出現了以上的報錯信息.這是卻少numactl這個時候如果是Centos就yum -y install numactl就可以解決這個問題了.?
? ? ? ? ? ? ? ? ? ? ?ubuntu的就sudo apt-get install numactl就可以解決這個問題了
?
The server quit without updating PID file? 原因安裝時的設置的datadir basedir 在mysql運行時找不到對應目錄
? ?解決方法:
? ?1).ps aux|grep mysql 或 ps aux|grep mysqld
? ?2).kill? -9 上述的mysql服務
? ?3).vim? xxx/mysql/support-files/mysql.server? 修改basedir=xxx/mysql? datadir=自己設置的data位置(如我設置在/data/mysql/data)
? ?4).移動mysql.serve文件 cp mysql.server /etc/init.d/mysqld (注意/etc/init.d/中 原有的mysqld 需要移除)
? ?5).vim /etc/my.cnf? 修改basedir datadir 與 3)一樣的路徑 (我這里忘了修改導致出錯)
? ?6).修改datadir的權限 如mkdir? /data/mysql? ,mkdir data/mysql/data ,chown -R mysql:mysql? /data/mysql? (若沒有mysql用戶,通過groupadd mysql; useradd -r -g mysql mysql 添加)
? ?7).systemctl restart mysqld
?
重啟MySQL的時候出現Warning: Unit file of mysql.service changed on disk, ‘systemctl daemon-reload‘ recommended.錯誤,根據提示,
? 解決方法:
?systemctl?daemon-reload
?正常重啟MariaDB
?systemctl?restart mysql
? 即可。其他服務出現類似的情況,也可以使用systemctl?daemon-reload來解決。
?
?
?bash:mysql:command not found
? 解決方法
?
? 有以下幾種錯誤原因:
? ? ?1、如果你是使用的 rpm 的安裝方式安裝的,那么可能的情況就是你沒有安裝 client 包。
? ? ?2、如果你已經安裝了還是報這個錯的話,那么你可以再重裝一遍。(本人將client包重新安裝后登錄成功)
? ? ?3、系統默認會查找/usr/bin下的命令,如果這個命令不在這個目錄下,當然會找不到命令,我們需要做的就是映射一個鏈接到/usr/bin目錄下,相當于建立一個鏈接文件。
? ? ? ? 3.1、首先得知道mysql命令或mysqladmin命令的完整路徑
? ? ? ? ? 比如mysql的路徑是:
? ? ? ? ? /usr/local/mysql/bin/mysql,我們則可以這樣執行命令:
? ? ? ? ? ln -s? /usr/local/mysql/bin/mysql??? /usr/bin
? ? ? ?3.2、取得命令執行的絕對路徑:whereis? ?
? ? ? ?
?
轉載于:https://www.cnblogs.com/indifferent/p/10977894.html
總結
以上是生活随笔為你收集整理的centos7.3 安装 mysql-5.7.13的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis 学习(18)-- AOF
- 下一篇: 数据库范式设计