Linux下MySQL安装及配置
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