Linux下MySQL安装及配置

时间:2021-10-06 15:55:58

Linux下MySQL安装配置

安装MySQL

  Ubuntu系统中,直接使用apt install的方式去安装MySQL的服务端和客户端,MySQL的客户端必须安装,否则无法通过命令连接并操作MySQL。安装命令如下:

  apt install -y mysql-server mysql-client

 

管理MySQL服务

  启动、停止和重启服务

  启动服务:service mysql start

  停止服务:service mysql stop

  重启服务:service mysql restart

  查看MySQL当前状态

  \s或者status命令查看MySQL的当前状态。

  查看MySQL的具体状态信息

> show variables like 'max_connections';    # 查看最大连接数配置

+-----------------+-------+

| Variable_name   | Value |

+-----------------+-------+

| max_connections | 151   |

+-----------------+-------+

> show global status like 'max_used_connections';    # 查看当前已有的连接数

+----------------------+-------+

| Variable_name        | Value |

+----------------------+-------+

| Max_used_connections | 1     |

+----------------------+-------+

> show variables like 'innodb_buffer_pool_size';    # 查询innodb缓存池大小

+-------------------------+-----------+

| Variable_name           | Value     |

+-------------------------+-----------+

| innodb_buffer_pool_size | 134217728 |

+-------------------------+-----------+

> show status like 'innodb_rows_%';    # 查看到目前为止innodb表引擎执行的增删改查次数

+----------------------+-------+

| Variable_name        | Value |

+----------------------+-------+

| Innodb_rows_deleted  | 0     |

| Innodb_rows_inserted | 0     |

| Innodb_rows_read     | 8     |

| Innodb_rows_updated  | 0     |

+----------------------+-------+

MySQL配置文件

  Ubuntu系统中,MySQL的配置文件在/etc/mysql/mysql.cnf中,打开/etc/mysql目录下的mysql.cnf配置文件后,发现MySQL配置文件被移动到了/etc/mysql/mysql.conf.d目录中,新的配置文件为该目录下的mysqld.cnf文件。打开mysqld.cnf配置文件,可以看到如下配置项。下面对几个比较常用的配置项详细说明。

[mysqld]    # 服务端配置

port            = 3306    # 端口

basedir         = /usr    # MySQL应用程序所在位置

datadir         = /var/lib/mysql    # mysql中创建的数据库所在位置

tmpdir          = /tmp

lc-messages-dir = /usr/share/mysql

skip-external-locking

bind-address            = 127.0.0.1    # 绑定的主机,这里表示只能在本地主机访问

#max_connections        = 100    # 最大连接数,可选

#log_slow_queries       = /var/log/mysql/mysql-slow.log    # 慢查询日志记录文件的位置

#long_query_time = 2    # 需要慢查询记录的上限时间

#innodb_buffer_pool_size = 3G    # InnoDB缓存池大小,影响mysql的性能,默认没有,需要自己添加

MySQL的几个重要目录

MySQL安装完成后不像SQL Server默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录。

数据库(MySQL自带和用户创建的数据库)目录:

/var/lib/mysql/

配置文件目录:

/usr/share/mysql(mysql.server命令及配置文件)

MySQL相关命令:

/usr/bin(mysqladmin mysqldump等命令)

启动脚本:

/etc/rc.d/init.d/(启动脚本文件mysql的目录)

修改登录密码

MySQL默认没有密码,安装完毕后需要自行增加密码。

格式:mysqladmin -u用户名 -p旧密码 password 新密码

命令:usr/bin/mysqladmin -u root password 'new-password'

注:因为初始root没有密码,所以-p旧密码一项可以省略。

这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。

启动与停止

启动

MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可。

]# /etc/init.d/mysql start

停止

/usr/bin/mysqladmin -u root -p shutdown

自启动

察看mysql是否在自动启动列表中

# sbin/chkconfig --list

把MySQL添加到系统的启动服务组里面去

# sbin/chkconfig --add mysql

把MySQL从启动服务组里面删除。

# sbin/chkconfig --del mysql

更改MySQL目录

MySQL默认的数据库文件存储目录为/var/lib/mysql,假如要把目录移到/home/data下需要进行下面几步。

home目录下建立data目录:

cd /home

mkdir data

把MySQL服务进程停掉:

/usr/bin/mysqladmin -u root -p shutdown

把/var/lib/mysql整个目录移到/home/data:

mv /var/lib/mysql /home/data/

找到my.cnf配置文件:

如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:

]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

编辑MySQL的配置文件/etc/my.cnf:

为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。

修改MySQL启动脚本/etc/rc.d/init.d/mysql:

修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。

重新启动MySQL服务:

/etc/rc.d/init.d/mysql start

修改数据库默认字符集

安装后的数据库编码默认是latin1,以utf-8为例,修改字符集.

登录数据库后,使用命令show variables like 'character%' 可以查看数据库使用字符集的情况,下面是在没有修改前mysql的字符集设置:

> show variables like 'character%';

+--------------------------+----------------------------+

| 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/ |

+--------------------------+----------------------------+

要把字符集换成utf-8的,我们只要修改mysql的配置文件my.cnf,在其中加入下面的配置段即可。

在[client]下加入:

default-character-set = utf8

在[mysqld]下加入:

init_connect = 'SET NAMES utf8'

default-character-set = utf8

default-collation = utf8_general_ci

完成上面的修改,保存后重启。

service mysql restart