centos7安裝mysql

轉(zhuǎn)載地址:centos7安裝mysql

在CentOS中默認安裝有MariaDB,這個是MySQL的分支,但為了需要,還是要在系統(tǒng)中安裝MySQL,而且安裝完成之后可以直接覆蓋掉MariaDB。

1 下載并安裝MySQL官方的 Yum Repository

[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

使用上面的命令就直接下載了安裝用的Yum Repository,大概25KB的樣子,然后就可以直接yum安裝了。

[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

之后就開始安裝MySQL服務(wù)器。

[root@localhost ~]# yum -y install mysql-community-server

這步可能會花些時間,安裝完成后就會覆蓋掉之前的mariadb。

image

至此MySQL就安裝完成了,然后是對MySQL的一些設(shè)置。

2 MySQL數(shù)據(jù)庫設(shè)置

首先啟動MySQL

[root@localhost ~]# systemctl start  mysqld.service

查看MySQL運行狀態(tài),運行狀態(tài)如圖:

[root@localhost ~]# systemctl status mysqld.service
image

此時MySQL已經(jīng)開始正常運行,不過要想進入MySQL還得先找出此時root用戶的密碼,通過如下命令可以在日志文件中找出密碼:

[root@localhost ~]# grep "password" /var/log/mysqld.log
image

如下命令進入數(shù)據(jù)庫:

[root@localhost ~]# mysql -uroot -p

輸入初始密碼,此時不能做任何事情,因為MySQL默認必須修改密碼之后才能操作數(shù)據(jù)庫:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';

這里有個問題,新密碼設(shè)置的時候如果設(shè)置的過于簡單會報錯:

image.png

原因是因為MySQL有密碼設(shè)置的規(guī)范,具體是與validate_password_policy的值有關(guān):


image.png

MySQL完整的初始密碼規(guī)則可以通過如下命令查看:

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 4     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 1     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
rows in set (0.01 sec)

密碼的長度是由validate_password_length決定的,而validate_password_length的計算公式是:

validate_password_length = validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)

我的是已經(jīng)修改過的,初始情況下第一個的值是ON,validate_password_length是8??梢酝ㄟ^如下命令修改:

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

設(shè)置之后就是我上面查出來的那幾個值了,此時密碼就可以設(shè)置的很簡單,例如1234之類的。到此數(shù)據(jù)庫的密碼設(shè)置就完成了。

但此時還有一個問題,就是因為安裝了Yum Repository,以后每次yum操作都會自動更新,需要把這個卸載掉:

[root@localhost ~]# yum -y remove mysql57-community-release-el7-10.noarch

此時才算真的完成了。


  1. 導(dǎo)入包到mysql文件夾中
  2. 檢查
    rpm -qa|grep mariadb
    如果存在,則卸載
    rpm -e --nodeps mariadb-xxxxxxxxx

必須安裝兩個包
rpm -qa|grep libaio
rpm -qa|grep net-tools

沒有就通過下面命令安裝
yun install libaio
  1. 授權(quán)
    chmod -R 777 /tmp

  2. 安裝mysql
    rpm -ivh mysql-community-common-5.7.28-1.sles12.x86_64.rpm
    rpm -ivh mysql-community-libs-5.7.28-1.sles12.x86_64.rpm
    rpm -ivh mysql-community-client-5.7.28-1.sles12.x86_64.rpm
    rpm -ivh mysql-community-server-5.7.28-1.sles12.x86_64.rpm

  3. 查看版本
    mysqladmin --version

  4. 初始化服務(wù)
    mysqld --initialize --user=mysql

  5. 查看密碼
    cat /var/log/mysqld.log

  6. 相關(guān)服務(wù)
    啟動:systemctl start mysqld.service
    停止: systemctl stop mysqld.service

  7. 修改登錄密碼
    mysql -uroot p

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

  8. 修改字符集
    vim /etc/my.cnf
    在最后加上中文字符集配置
    character_set_server=utf8
    再重啟 systemctl restart mysqld.service

  9. 授權(quán)遠程連接
    重新登錄mysql.
    grant all privileges on . to root@'%' identified by 'root';
    刷新權(quán)限
    flush privileges;

    關(guān)閉防火墻
    一次關(guān)閉
    systemctl stop firewalld.service
    永久關(guān)閉
    systemctl disable firewalld.service

    重啟
    systemctl restart mysqld.service

  10. 導(dǎo)入sql文件
    創(chuàng)建對應(yīng)的數(shù)據(jù)庫
    use ,然后
    source /root/xxx.sql

遇到的坑:

  1. 通過cat /var/log/mysqld.log 找不到初始密碼,mysqld.log文件為空
    解決辦法:

使用rpm命令安裝Mysql后,mysql的配置文件是/etc/my.cnf。查看配置文件,找到log-error log-error=/var/log/mysql/mysqld.log ??吹綄?yīng)的文件位置,在通過cat命令查看,一般最后一行是2019-12-31T09:07:56.392226Z 1 [Note] A temporary password is generated for root@localhost: 6TijeIQLia#r 最后的字符串就是密碼

  1. Failed to start mysqld.service: Unit not found.
[root@localhost mysql]# systemctl start mysqld.service
Failed to start mysqld.service: Unit not found.
  1. env: /etc/init.d/mysqld: 權(quán)限不夠

chmod a+wrx /etc/init.d/mysqld
然后再次執(zhí)行:
service mysqld start

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、yum方式安裝,可參考官網(wǎng) 清理掉centos7上內(nèi)置的mariadb數(shù)據(jù)庫(如果有的話),具體見如下操作 注...
    清月比特閱讀 2,817評論 0 8
  • CentOS7默認數(shù)據(jù)庫是mariadb,配置等用著不習(xí)慣,因此決定改成mysql,但是CentOS7的yum源中...
    SoLix閱讀 540評論 0 1
  • centos7默認安裝的是mariadb,所以要安裝mysql首先要卸載mariadb,否則會沖突。 卸載mari...
    葉天義閱讀 3,733評論 0 2
  • MySQL安裝--yum 查看是否已經(jīng)安裝了MySQL,命令:yum list installed|grep my...
    Lv_0閱讀 270評論 0 2
  • 因為在學(xué)習(xí)大數(shù)據(jù),所以新開了一個Centos7,在安裝hive的時候需要安裝mysql,以前在參照安裝mysql也...
    Sam_L閱讀 569評論 0 3

友情鏈接更多精彩內(nèi)容