title: Ubuntu 20.04 failed to install mysql2 gem
body: <p>I am on ubuntu 20.04 and trying to install ruby gem mysql2, i have run:</p>
  <pre><code>gem install mysql2
  </code></pre>
  <p>But got this error</p>
  <pre><code>ient.c: In function ‘rb_mysql_query’:
  client.c:787:14: warning: passing argument 1 of ‘rb_rescue2’ from incompatible pointer type [-Wincompatible-pointer-types]
    787 |   rb_rescue2(do_send_query, (VALUE)&amp;args, disconnect_and_raise, self, rb_eException, (VALUE)0);
        |              ^~~~~~~~~~~~~
        |              |
        |              VALUE (*)(void *) {aka long unsigned int (*)(void *)}
  In file included from /home/nurfitra/.rbenv/versions/3.0.1/include/ruby-3.0.0/ruby/ruby.h:38,
                   from /home/nurfitra/.rbenv/versions/3.0.1/include/ruby-3.0.0/ruby.h:38,
                   from ./mysql2_ext.h:10,
                   from client.c:1:
  /home/nurfitra/.rbenv/versions/3.0.1/include/ruby-3.0.0/ruby/internal/iterator.h:51:18: note: expected ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’} but argument is of type ‘VALUE (*)(void *)’ {aka ‘long unsigned int (*)(void *)’}
     51 | VALUE rb_rescue2(VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE,VALUE),VALUE,...);
        |                  ^~~~~~~~~~~~~~~
  client.c:795:16: warning: passing argument 1 of ‘rb_rescue2’ from incompatible pointer type [-Wincompatible-pointer-types]
    795 |     rb_rescue2(do_query, (VALUE)&amp;async_args, disconnect_and_raise, self, rb_eException, (VALUE)0);
        |                ^~~~~~~~
        |                |
        |                VALUE (*)(void *) {aka long unsigned int (*)(void *)}
  In file included from /home/nurfitra/.rbenv/versions/3.0.1/include/ruby-3.0.0/ruby/ruby.h:38,
                   from /home/nurfitra/.rbenv/versions/3.0.1/include/ruby-3.0.0/ruby.h:38,
                   from ./mysql2_ext.h:10,
                   from client.c:1:
  /home/nurfitra/.rbenv/versions/3.0.1/include/ruby-3.0.0/ruby/internal/iterator.h:51:18: note: expected ‘VALUE (*)(VALUE)’ {aka ‘long unsigned int (*)(long unsigned int)’} but argument is of type ‘VALUE (*)(void *)’ {aka ‘long unsigned int (*)(void *)’}
     51 | VALUE rb_rescue2(VALUE(*)(VALUE),VALUE,VALUE(*)(VALUE,VALUE),VALUE,...);
        |                  ^~~~~~~~~~~~~~~
  client.c: At top level:
  cc1: warning: unrecognized command line option ‘-Wno-self-assign’
  cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
  cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
  compiling infile.c
  compiling mysql2_ext.c
  compiling result.c
  compiling statement.c
  linking shared-object mysql2/mysql2.so
  /usr/bin/ld: cannot find -lssl
  /usr/bin/ld: cannot find -lcrypto
  collect2: error: ld returned 1 exit status
  make: *** [Makefile:262: mysql2.so] Error 1
  
  make failed, exit code 2
  
  </code></pre>
  <p>i have already installed libmysqlclient-dev default-libmysqlclient-dev. But still not working</p>