1. 程式人生 > >mysql安裝(rpm)

mysql安裝(rpm)

沒有 command ive 沖突 選項 help tables unit 安全

mysql安裝(rpm)

1.卸載系統自帶的 mariadb-lib

[root@centos-linux ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.44-2.el7.centos.x86_64
[root@centos-linux ~]# rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps

若不卸載,可能會出現mariadb與mysql沖突的情況

2.下載 rpm 安裝包

去官網找到最新的 rpm 集合包。現在最新的是 mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar

復制其下載地址,在服務器下載 (或者本地下載了上傳至服務器)。

[root@centos-linux ~]# wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar

然後解壓

[root@centos-linux ~]# ls
mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar
[root@centos-linux ~]# tar xvf mysql-5.7.13-1.el7.x86_64.rpm-bundle.tar
mysql-community-test-5.7.13-1.el7.x86_64.rpm
mysql-community-embedded-5.7.13-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.13-1.el7.x86_64.rpm
mysql-community-server-5.7.13-1.el7.x86_64.rpm
mysql-community-client-5.7.13-1.el7.x86_64.rpm
mysql-community-common-5.7.13-1.el7.x86_64.rpm
mysql-community-server-minimal-5.7.13-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.13-1.el7.x86_64.rpm
mysql-community-devel-5.7.13-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.13-1.el7.x86_64.rpm
mysql-community-libs-5.7.13-1.el7.x86_64.rpm
mysql-community-minimal-debuginfo-5.7.13-1.el7.x86_64.rpm

3、安裝

依次執行(幾個包有依賴關系,所以執行有先後)下面命令安裝

[root@centos-linux ~]# rpm -ivh mysql-community-common-5.7.13-1.el7.x86_64.rpm
[root@centos-linux ~]# rpm -ivh mysql-community-libs-5.7.13-1.el7.x86_64.rpm
[root@centos-linux ~]# rpm -ivh mysql-community-client-5.7.13-1.el7.x86_64.rpm
[root@centos-linux ~]# rpm -ivh mysql-community-server-5.7.13-1.el7.x86_64.rpm

4、啟動mysqld服務

service mysqld start

這裏需要註意一點,曾經在這裏踩過幾次坑
若沒有啟動mysql服務,而直接登錄mysql,在mysql的啟動過程中有時會遇到下述錯誤
Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘

Mysql有兩種連接方式
(1)TCP/IP
(2)socket
對mysql.sock來說,其作用是mysql客戶端程序mysql與mysql服務器端程序mysqlserver處於同一臺機器,發起本地連接時可用。
例如你無須定義連接host的具體IP得,只要為空或localhost就可以。
在此種情況下,即使你改變mysql的外部port也是一樣可能正常連接。
因為你在my.ini中或my.cnf中改變端口後,mysql.sock是隨每一次 mysql server啟動生成的。已經根據你在更改完my.cnf後重啟mysql時重新生成了一次,信息已跟著變更。
那麽對於外部連接,必須是要變更port才能連接的。

目前遇到的這種錯誤的情況一共有兩種:
一種是存在mysql.sock文件,這種的解決方法是建立軟連接
一種是不存在mysql.sock,這種情況是因為沒有先啟動mysql服務而造成的

參考:https://blog.csdn.net/kerwin612/article/details/8568206

5、數據庫初始化

在linux系統中,為了保證數據庫目錄為與文件的所有者為 mysql 登陸用戶,如果你是以 root 身份運行 mysql 服務,需要執行下面的命令初始化

mysqld --initialize --user=mysql

如果是以 mysql 身份運行,則可以去掉 --user 選項。

另外 --initialize 選項默認以“安全”模式來初始化,則會為 root 用戶生成一個密碼並將該密碼標記為過期,登陸後你需要設置一個新的密碼,而使用 --initialize-insecure 命令則不使用安全模式,則不會為 root 用戶生成一個密碼。

這裏演示使用的 --initialize 初始化的,會生成一個 root 賬戶密碼,密碼在log文件裏

[root@centos-linux ~]# cat /var/log/mysqld.log
2016-07-16T07:56:38.282824Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-07-16T07:56:38.422114Z 0 [Warning] InnoDB: New log files created, LSN=45790
2016-07-16T07:56:38.449315Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2016-07-16T07:56:38.457910Z 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: d3261dbf-4b2a-11e6-86ef-001c4260563f.
2016-07-16T07:56:38.458976Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2016-07-16T07:56:38.459524Z 1 [Note] A temporary password is generated for root@localhost: hm9dKgzQdm:W

上面最後一行則給出了生成的密碼,現在就可以啟動數據庫了,然後使用上面的密碼登陸。

[root@centos-linux ~]# systemctl start mysqld
[root@centos-linux ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.13

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>

6.修改 root 密碼

該密碼被標記為過期了,如果想正常使用還需要修改密碼

mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

以前的 password()函數將會被拋棄,官方建議使用下面的命令來修改密碼

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

同時,如果你設置的密碼過於簡單也會報錯。

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

密碼需要包含大寫字母,小寫字母,數字,特殊字符。如 "Yy123.."

參考:https://my.oschina.net/Laily/blog/713022

mysql安裝(rpm)