本文摘自PHP中文网,作者黄舟,侵删。
mysql最流行的关系型数据库之一,目前隶属于oracle公司,因体积小、速度快、总体拥有成本低,开放源代码这一特点,所以是我们日常开发的首选。下面我们来看看如何在Linux下安装配置MySQL系统:Ubuntu 16.04LTS
1\官网下载mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
2\建立工作组:
3\创建目录
4\解压mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz,并拷贝至/usr/local/mysql
5\修改mysql用户对mysql以下及其子文件夹以下文件的权限,修改后可使用ll查看权限
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | root@Ice-***: /usr/local
root@Ice-***: /usr/local
总用量 44
drwxr-xr-x 11 root root 4096 5月 19 07:39 ./
drwxr-xr-x 11 root root 4096 2月 16 04:30 ../
drwxr-xr-x 2 root root 4096 2月 16 04:19 bin/
drwxr-xr-x 2 root root 4096 2月 16 04:19 etc/
drwxr-xr-x 2 root root 4096 2月 16 04:19 games/
drwxr-xr-x 2 root root 4096 2月 16 04:19 include/
drwxr-xr-x 4 root root 4096 2月 16 04:23 lib/
lrwxrwxrwx 1 root root 9 3月 29 14:11 man -> share /man/
drwxr-xr-x 10 mysql mysql 4096 5月 19 07:48 mysql/
drwxr-xr-x 2 root root 4096 2月 16 04:19 sbin/
drwxr-xr-x 8 root root 4096 2月 16 04:34 share/
drwxr-xr-x 2 root root 4096 2月 16 04:19 src/
root@Ice-***: /usr/local
root@Ice-***: /usr/local/mysql
总用量 64
drwxr-xr-x 10 mysql mysql 4096 5月 19 07:48 ./
drwxr-xr-x 11 root root 4096 5月 19 07:39 ../
drwxr-xr-x 2 mysql mysql 4096 5月 19 07:48 bin/
-rw-r--r-- 1 mysql mysql 17987 5月 19 07:48 COPYING
drwxr-xr-x 2 mysql mysql 4096 5月 19 07:41 data/
drwxr-xr-x 2 mysql mysql 4096 5月 19 07:48 docs/
drwxr-xr-x 3 mysql mysql 4096 5月 19 07:48 include/
drwxr-xr-x 5 mysql mysql 4096 5月 19 07:48 lib/
drwxr-xr-x 4 mysql mysql 4096 5月 19 07:48 man /
-rw-r--r-- 1 mysql mysql 2478 5月 19 07:48 README
drwxr-xr-x 28 mysql mysql 4096 5月 19 07:48 share/
drwxr-xr-x 2 mysql mysql 4096 5月 19 07:48 support-files/
|
6\修改(或新建)/etc/my.cnf 配置文件
1 2 3 4 | root@Ice-***: /usr/local/mysql
[mysqld] basedir= /usr/local/mysql/
datadir= /usr/local/mysql/data
:wq
|
7\最关键的初始化
1 2 3 4 5 6 7 8 9 | root@Ice-***: /usr/local/mysql
2017-05-19T00:15:46.529420Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-05-19T00:15:47.066125Z 0 [Warning] InnoDB: New log files created, LSN=45790
2017-05-19T00:15:47.213711Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2017-05-19T00:15:47.286951Z 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: 4e958344-3c28-11e7-8334-c8d3ffd2db82.
2017-05-19T00:15:47.292857Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2017-05-19T00:15:47.294758Z 1 [Note] A temporary password is generated for root@localhost: YjaotQk*2ew4
|
初始密码要记住
这里可能会出现很多问题,比如:
Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
缺少依赖关系包
解决方法:sudo apt-get install libaio-dev
还有可能是之前步骤不对导致了操作data文件的权限不够等等.按照步骤来,缺少什么装什么(有提示),到了这里应该就初始化成功了,那几个Warning,值得注意的是Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.有时间可以查下是怎么回事,这条忽略也没影响.
8\不要着急启动,现在还启动不了.执行代码,将mysql下除了data文件夹外的文件变为root权限
1 2 | root@Ice-***: /usr/local/mysql
root@Ice-***: /usr/local/mysql
|
9\启动
1 | root@Ice-***: /usr/local/mysql
|
敲回车
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | root@Ice-***: /usr/local/mysql
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.18
Copyright (c) 2000, 2017, 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> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql>
|
10\重置密码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | mysql> SET PASSWORD = PASSWORD( 'newpasswd' );
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> quit
Bye
|
11\设置开机启动
1 2 | root@Ice-***: /usr/local/mysql
root@Ice-***: /usr/local/mysql
|
12\安装mysql-server 和 mysql-client
1 2 3 4 5 6 | root@Ice-***:~
root@Ice-***:~
root@Ice-***:~
E: Sub-process /usr/bin/dpkg returned an error code (1)
|
解决办法:
1.$ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info_old //现将info文件夹更名
2.$ sudo mkdir /var/lib/dpkg/info //再新建一个新的info文件夹
3.$ sudo apt-get update,
$ apt-get -f install //修复依赖树
4.$ sudo mv /var/lib/dpkg/info/* /var/lib/dpkg/info_old //执行完上一步操作后会在新的info文件夹下生成一些文件,现将这些文件全部移到info_old文件夹下
5.$ sudo rm -rf /var/lib/dpkg/info //把自己新建的info文件夹删掉
6.$ sudo mv /var/lib/dpkg/info_old /var/lib/dpkg/info //把以前的info文件夹重新改回名字
最后,如果是Ubuntu系统可能无法向表中插入汉字,无法从表中查询汉字..
解决办法:
关闭数据库服务
1 2 | service mysql stop
~$ sudo vim /etc/mysql/mysql .conf.d /mysqld .cnf
|
在[mysqld]下添加一行character_set_server=utf8
配置文件选段:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | [mysqld]
#
# * Basic Settings
#
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
character_set_server=utf8 就是这一行,原来是没有的,要手动添加!
skip-external-locking
#
|
将上述文件拷贝至/etc/mysql/my.cnf
1 | ~$ sudo cp /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf
|
重启数据库服务
1 | ~$ /etc/init.d/mysql restart
|
如果查看字符集能得到如下结果就说明成功了.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | mysql> show variables like 'collation_%' ;
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
mysql> show variables like 'character_set_%' ;
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)
|
以上就是Linux下安装配置MySQL的教程的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
全面详解Linux下的top命令――实时监控服务器状况
Linux之父是谁
Linux如何关闭php-fpm
Linux命令之文件的归档和压缩
Linux是一种什么软件
Linux中退出vi编辑器,按下esc没反应怎么办?
Linux实现检查文件夹是否存在不存在则创建
Linux中汉字显示乱码怎么办
Linux vi指令
关于Linux下通配符以及正则表达式的详解(图)
更多相关阅读请进入《Linux》频道 >>
转载请注明出处:木庄网络博客 » Linux下安装配置MySQL的教程