通过yum的方式安装mysql

访问其官网https://www.mysql.com/,点击downloads,点击community,点击 mysql yum repository,下载一个mysql57-community-release-el7-11.noarch.rpm。

怎么用呢?

点击A Quick Guide to Using the MySQL Yum Repository,大概意思如下

先下载一个对应版本的mysql57-community-release-el7-11.noarch.rpm,我要在centos7上安装5.7版本的mysql,所以下载的是这个。

然后安装这个rpm

rpm -Uvh mysql57-community-release-el7-11.noarch.rpm

安装完这个rpm之后其实就是,弄了这三个文件,一个密钥,一个.repo文件

/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
/etc/yum.repos.d/mysql-community-source.repo
/etc/yum.repos.d/mysql-community.repo

主要看mysql-community.repo文件

[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.5
[mysql55-community]
name=MySQL 5.5 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-tools-preview]
name=MySQL Tools Preview
baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-cluster-7.5-community]
name=MySQL Cluster 7.5 Community
baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-cluster-7.6-community]
name=MySQL Cluster 7.6 Community
baseurl=http://repo.mysql.com/yum/mysql-cluster-7.6-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

可以发现只有其中的[mysql57-community]的enabled为1,可用。

mysql社区版的不同版本托管在不同子存储库中,最新GA系列子库(目前mysql 5.7)默认启用,其他系列的子库(例如mysql 5.6系列)默认为禁用。也可以通过如下命令来查看mysql yum存储库中的子存储库,并查看其中哪些被启用或禁用。

yum repolist all|grep mysql

如果想安装5.6版本,可以执行如下命令

yum-config-manager --disable mysql57-community
yum-config-manager --enable mysql56-community

也就是说把5.7的enable设置成0,5.6的enable设置成1。如果不通过命令也可以直接通过更改mysql-community.repo 文件。

如果没有找到这个命令的话先yum install yum-utils -y

应该只启用一个子库,如果启用了多个子库,yum会使用最新系列。可以通过如下命令查看启用的子库

yum repolist enabled|grep mysql

安装mysql,这将安装MySQL服务器(mysql-community-server)的软件包以及运行服务器所需组件的软件包,包括客户端软件包(mysql-community-client),客户端和服务器(mysql-community-common)的常见错误消息和字符集以及共享客户端库(mysql-community-libs

yum install mysql-community-server

启动mysql服务

systemctl start mysqld.service

查看mysql服务器状态

systemctl status mysqld.service

本来就是开机自启的,可以用systemctl is-enalbed mysql命令查看

  • /var/run/mysqld/mysql.pid:Pid文件
  • /usr/sbin/mysqld:mysqld服务
  • /etc/my.cnf:配置文件
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
  • /var/lib/mysql/mysql.sock:Socket
  • /var/log/mysqld.log:错误日志
  • /usr/bin:客户端程序

    • mysql
    • mysqladmin
    • mysqlcheck
    • mysqldump
  • /var/lib/mysql:数据文件夹

  • /usr/lib/systemd/system/mysqld.service:服务初始化文件
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql

Type=forking

PIDFile=/var/run/mysqld/mysqld.pid

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Execute pre and post scripts as root
PermissionsStartOnly=true

# Needed to create system tables
ExecStartPre=/usr/bin/mysqld_pre_systemd

# Start main service
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS

# Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 5000

Restart=on-failure

RestartPreventExitStatus=1

PrivateTmp=false

该安装还会在系统上创建一个用户组mysql和一个用户mysql

mysql服务器初始化后,会发生如下情况

  • 服务器已初始化
  • 在数据库目录中生成SSL证书和密钥文件
  • validate_password插件安装并启用
  • 超级用户账户root已创建

超级用户的密码被设置并存储在错误日志文件中。要显示它,请使用以下命令

grep 'temporary password' /var/log/mysqld.log

我的显示信息如下,其中R5!!7qmplZ!/就为密码

2018-03-05T16:00:52.295713Z 1 [Note] A temporary password is generated for root@localhost: R5!!7qmplZ!/

通过使用生成的临时密码登录并尽快更改root密码并为超级用户帐户设置自定义密码:

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

validate_password是默认安装的。实施的默认密码策略validate_password要求密码至少包含一个大写字母,一个小写字母,一个数字和一个特殊字符,并且总密码长度至少为8个字符。

这里把新密码更改为MyNewPass4!

修改字符集

mysql的字符集包括字符集(character)和校对规则(collation)两个概念。其中字符集用来定义MySQL存储字符串的方式,校对规则用来定义比较字符串的方式。字符集和校对规则是一对多的关系,mysql支持30多种字符集的70多种校对规则。每个字符集至少对应一个校对规则。

查看所有可用字符集的命令是show character set;

mysql> show character set;
+----------+---------------------------------+---------------------+--------+
| Charset  | Description                     | Default collation   | Maxlen |
+----------+---------------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese        | big5_chinese_ci     |      2 |
| dec8     | DEC West European               | dec8_swedish_ci     |      1 |
| cp850    | DOS West European               | cp850_general_ci    |      1 |
。。。

可以用show collation like ‘*‘;查看相关字符集的校对规则

mysql> show collation like 'utf%';
+--------------------------+---------+-----+---------+----------+---------+
| Collation                | Charset | Id  | Default | Compiled | Sortlen |
+--------------------------+---------+-----+---------+----------+---------+
| utf8_general_ci          | utf8    |  33 | Yes     | Yes      |       1 |
| utf8_bin                 | utf8    |  83 |         | Yes      |       1 |
| utf8_unicode_ci          | utf8    | 192 |         | Yes      |       8 |
| utf8_icelandic_ci        | utf8    | 193 |         | Yes      |       8 |
| utf8_latvian_ci          | utf8    | 194 |         | Yes      |       8 |
。。。

校对规则命名约定:它们以其相关的字符集名开始,通常包括一个_ci(大小写不敏感),_cs(大小写敏感)或_bin(二元,即比较是基于字符编码的值而与language无关)结束。

字符集的设置

输入用户名密码登录mysql之后,执行show variables like '%char%'

+--------------------------------------+----------------------------+
| Variable_name                        | Value                      |
+--------------------------------------+----------------------------+
| character_set_client                 | utf8                       |
| character_set_connection             | utf8                       |
| character_set_database               | latin1                     |
| character_set_filesystem             | binary                     |
| character_set_results                | utf8                       |
| character_set_server                 | latin1                     |
| character_set_system                 | utf8                       |
| character_sets_dir                   | /usr/share/mysql/charsets/ |
| validate_password_special_char_count | 1                          |
+--------------------------------------+----------------------------+
  • character_set_client:告知服务器客户端使用的编码
  • character_set_results:服务器返回的结果集使用的编码
  • character_set_connection:连接用的字符集

可以在my.cnf中设置以下语句来同时修改这三个参数,这三个参数是关于客户端和服务器之间交互的字符集设置。

[mysql]
default-character-set=utf8
  • character_set_server :服务器字符集

设置配置文件

[mysqld]
character-set-server=utf8
  • character_set_database:数据库字符集,如果没有指定则使用服务器字符集作为数据库的字符集。

建议安装完数据库之后先更改字符集,否则有中文字符会乱码。

更改完字符集后需要重启服务。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值