Ubuntu mysql安装与使用

Ubuntu 下安装 mysql
运行下面的shell代码

#安装mysql    
sudo apt-get -y install mysql-server    
sudo apt-get -y install mysql-client    
sudo apt-get -y install libmysqlclient-dev  

安装过程中会提示你创建root账户
那就创建 要把root账户密码记下来 不要弄丢咯

mysql 测试

sudo mysqld --initialize
2018-10-17T06:25:56.353286Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-10-17T06:25:56.354004Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2018-10-17T06:25:56.354012Z 0 [ERROR] Aborting
systemctl start mysqld

弹出一个messagebox 让我输入密码我不确定是输入mysql的root密码还是Ubuntu的root密码,感觉应该是要输入mysql的root密码.但是我还是决定要先试一下Ubuntu的root密码.所以输入Ubuntu的root密码
结果输出

Failed to start mysqld.service: Unit mysqld.service not found.

启动失败,猜想是输入密码错误了.换mysql的root密码,这个root密码就是在安装mysql的时候初始创建的.

systemctl start mysqld

然后我用mysql的root密码测试居然还是不行.
那个上面的问题应该就是输入Ubuntu的密码.至于为什么不能成功应该从错误输出找原因. 启动mysqld服务失败的原因是:

Unit mysqld.service not found

先不管 先看看别的

如果看到有mysql 的socket处于 listen 状态则表示安装成功

sudo netstat -tap|grep mysql
tcp        0      0 localhost:mysql         *:*                     LISTEN      1071/mysqld

通过以下命令来检查MySQL服务器是否启动:

ps -ef | grep mysqld
mysql     1071     1  0 10月17 ?      00:00:38 /usr/sbin/mysqld
yourname    12237 18990  0 12:10 pts/2    00:00:00 grep --color=auto mysqld
mysql -u root -p

可以登录

Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 13
Server version: 5.7.23-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2018, 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> 
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)
mysql> exit;
Bye

关闭MYSQL服务

./mysqladmin -u root -p shutdown
Enter password: 

测试是否关闭成功

sudo netstat -tap|grep mysql
out put nothing
ps -ef | grep mysqld
yourname    20242 18990  0 12:15 pts/2    00:00:00 grep --color=auto mysqld

看不到mysql的服务了
然后我再把MYSQL的服务启动起来

cd /usr/bin
./mysqld_safe &
2018-10-18T04:17:34.530613Z mysqld_safe Logging to syslog.
2018-10-18T04:17:34.540702Z mysqld_safe Logging to '/var/log/mysql/error.log'.
./mysqld_safe: 152: ./mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied
2018-10-18T04:17:34.548777Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
./mysqld_safe: 152: ./mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied

这几乎代表着启动失败…
看一下

ps -ef|grep mysqld
liuzy    26197 18990  0 12:18 pts/2    00:00:00 grep --color=auto mysqld

看不到,服务没有启动起来,然后sudo加权限 测试

sudo nohup ./mysqld_safe &

没有出现什么错误,然后测下

ps -ef|grep mysqld
liuzy     5254 18990  0 12:26 pts/2    00:00:00 grep --color=auto mysqld

跟刚才一样… 换个命令测试

 sudo netstat -tap|grep mysql
 out put nothing

神马也没有输出来,尝试登录下mysql

mysql -u root -p 
Enter password: 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

已经不能登录成功了…

当前msyql服务器运行环境

cat /etc/issue
Ubuntu 16.04.5 LTS 
 l

查看mysqld启动是的缺省选项

mysqld --print-defaults
mysqld would have been started with the following arguments:
--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 --skip-external-locking --bind-address=127.0.0.1 --key_buffer_size=16M --max_allowed_packet=16M --thread_stack=192K --thread_cache_size=8 --myisam-recover-options=BACKUP --query_cache_limit=1M --query_cache_size=16M --log_error=/var/log/mysql/error.log --expire_logs_days=10 --max_binlog_size=100M

查看mysqld启动配置文件的优先级

mysqld --verbose --help|grep -A 1 "default options"
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13 - Permission denied)
--no-defaults           Don't read default options from any option file,
                        except for login file.
--defaults-file=#       Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.

查看当前的my.cnf配置文件

sudo mysqld &
ps -ef|grep mysql
root      9758 18990  0 12:50 pts/2    00:00:00 sudo mysqld
liuzy    10745 18990  0 12:51 pts/2    00:00:00 grep --color=auto mysql
ps -ef | grep mysqld
root      9758 18990  0 12:50 pts/2    00:00:00 sudo mysqld
liuzy    12677 18990  0 12:52 pts/2    00:00:00 grep --color=auto mysqld
ps -ef|grep mysql|grep -v grep
root      9758 18990  0 12:50 pts/2    00:00:00 sudo mysqld
service mysql start
need to input root password

接着

mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 3
Server version: 5.7.23-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2018, 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>
ps -ef|grep mysql|grep -v grep
yourname    20232 18990  0 13:18 pts/2    00:00:00 vim mysqld.cnf
mysql    28771     1  0 13:23 ?        00:00:00 /usr/sbin/mysqld

这就是说在Ubuntu中可以用service来启动mysql服务

那么我尝试下用service关闭 mysql服务

service mysql stop
need to input root password
ps -ef|grep mysql|grep -v grep
yourname    20232 18990  0 13:18 pts/2    00:00:00 vim mysqld.cnf
原文地址:https://www.cnblogs.com/vercont/p/10210161.html